データを渡す必要がある並列スコープ レベルに 2 つのコントローラーがあります。
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 成功関数でデータを設定しようとしても、バブルアウトしません。サービスは、値として「cats」を返します。私が読んだことから、サービスはグローバルであると想定されており、それらのデータの設定は(その目的と同様に)永続的である必要があります。何が間違っているのでしょうか? 同じスコープにあるこれら 2 つのコントローラー間でデータを取得するにはどうすればよいですか?