@HolmesInc

Почему String данные не заносятся в $scope?

Добрый вечер. Суть вопроса:
есть объект, который хранит поля, по которым строится график
$scope.placeObject = {
		place: [
		{
			name: 'some name 1',
			opacity: graphOpacity,
			value: 0,
			text: 'some text 1'	
		},
		{
			name: 'some name 2',
			opacity: graphOpacity,
			value: 0,
			text: 'some text 2'	
		},
		{
			name: 'some name 3',
			opacity: graphOpacity,
			value: 0,
			text: 'some text 3'	
		},
		{
			name: 'some name 4',
			opacity: graphOpacity,
			value: 0,
			text: 'some text 4'
		},
		]
	};

Данные для создания графика мы получаем из бд:
$http.get('../../php_scripts/functionality/votes/get_new_place_data.php').then(function(response) {
		$scope.placeObject.place[0].value = response.data[0].index_of_validity;
		$scope.placeObject.place[0].text = response.data[0].name;
});

При отображении графика значение value(index_of_validity) принимает и отображает нужный индекс, а вот текстовые поля, типо имени графика пишет те, что изначально занесены в объект (some text). Как бы это пофиксить?
  • Вопрос задан
  • 166 просмотров
Решения вопроса 1
@HolmesInc Автор вопроса
<div class="col-md-3">
	<raphael-gauge id="place1" config="placeObject.place[0]"></raphael-gauge>
</div>
<div class="col-md-3">
	<raphael-gauge id="place2" config="placeObject.place[1]"></raphael-gauge>
</div>

Модуль:
var ratingApp = angular.module('ratingApp', ['angular-raphael-gauge']);
ratingApp.controller('ratingCtrl', function($scope, $http) {
	var graphOpacity = 0.55;
	$scope.placeObject = {
		place: [
		{
			name: 'some 1',
			opacity: graphOpacity,
			value: 0,
			text: 'some text 1'	
		},
		{
			name: 'some 2',
			opacity: graphOpacity,
			value: 0,
			text: 'some text 2'	
		},
		{
			name: 'some name 3',
			opacity: graphOpacity,
			value: 0,
			text: 'some text 3'	
		},
		{
			name: 'some name 4',
			opacity: graphOpacity,
			value: 0,
			text: 'some text 4'
		},
		]
	};
$http.get('../../php_scripts/functionality/votes/get_new_place_data.php').then(function(response) {
		$scope.placeObject.place[0].value = response.data[0].index_of_validity;
		$scope.placeObject.place[0].name = response.data[0].name;
		console.log($scope.placeObject.place[0].name)
		$scope.placeObject.place[1].value = response.data[1].index_of_validity;
		$scope.placeObject.place[1].name = response.data[1].name;
		console.log($scope.placeObject.place[1].name)
  });
});
Похоже что проблема в модуле для отрисовки графика(использую этот http://angular-js.in/angular-raphael-gauge/)
Он отрисовывает только те значения, которые изначально заданы в объекте $scope.placeObject и не обновляет их после get запроса. Можно ли как то отредактировать этот модуль?
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
AMar4enko
@AMar4enko
Если вы строите график используя стороннюю директиву, то почему вы уверены, что она корректно отслеживает факт изменения наименования графика в $scope? Может она при инициализации его один раз оттуда берет. Для того, чтобы видеть актуальное содержимое $scope поставьте себе angular batarang в chrome
Ответ написан
astralo
@astralo
для "спасибо" есть кнопка [Нравится]
а ответ сервера по запросу $http.get('../../php_scripts/functionality/votes/get_new_place_data.php')
нормальный приходит?
в частности смущает относительный путь в адресе
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы