我在并行范围级别上有两个控制器,我需要在以下之间传递数据:
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 成功函数中设置数据时,它不会冒泡 - 服务仍然返回“猫”作为其值。根据我的阅读,服务应该是全局的,并且在其中设置数据应该是永久性的(这是它的目的)。我做错了什么,如何在同一范围内的这两个控制器之间获取数据?