у меня есть два контроллера на параллельном уровне области мне нужно передать данные между:Угловая служба не проходит между контроллерами
function TableRowCtrl($scope, $http, sharedProperties) {
console.log(sharedProperties.getProperty());
$scope.items = sharedProperties.getProperty();
}
и
function SideNavCtrl($scope, $http, sharedProperties) {
$scope.customers = undefined;
var temp = "cats";
$http.get('data/customers.json').success(function(data) {
$scope.customers = data;
temp = "dogs";
sharedProperties.setProperty(temp)
});
sharedProperties.setProperty(temp);
console.log(sharedProperties.getProperty());
}
Я пытаюсь использовать службу, чтобы сделать это (через примеры, которые я видел):
angular.module('myApp', []).service('sharedProperties', function() {
var property = "Cats";
return {
getProperty: function() {
return property;
},
setProperty: function(value) {
property = value;
}
};
});
Однако - когда я пытаюсь установить данные в SideNavCtrl http функция успеха, она не пузырится - услуга по-прежнему возвращает «кошки» в качестве ее значения. Из того, что я прочитал, службы должны быть глобальными, а установление данных в них должно быть постоянным (как и его цель). Что я делаю неправильно, и как я могу получить данные между этими двумя контроллерами в одной области?
Возможно, я что-то упустил - после того, как он был включен в функцию, я все еще нахожусь с той же ошибкой - значение, устанавливаемое shareProperties в функции успеха http, не торчит. Попробовав это решение, я все равно не могу получить эти данные и придерживаться служебной переменной.По-прежнему кажется, что исходное значение остается, а не тот, который ставит сеттер. –
@CharlesLillo Я воспроизведу в скрипте JS немного –
@CharlesLillo См. Мое редактирование для plunkr –