如果我有两个控制器和一个在控制器之间通信的服务,一个控制器的作用域如何影响服务中的值?对我来说,它看起来像设置控制器的价值与服务的价值,这就是它,但不知何故控制器可以更改服务值,而无需调用任何设置方法?这是一种处理服务的好方法吗? 我搜索了它,但找不到一个好的答案。文档和博客帖子的答案和例子,欢迎,谢谢。服务和控制器之间的魔术连接(角度)
// App.js
angular.module("myApp",[]);
angular.module("myApp").service("shareSvc", function(){
var _items = {};
return {
items: _items
}
});
angular.module("myApp").controller("controller1", function($scope, shareSvc){
$scope.items = shareSvc.items;
$scope.items.magic = "magic";
});
angular.module("myApp").controller("controller2", function($scope, shareSvc){
$scope.items = shareSvc.items;
});
//HTML
<body ng-app="myApp">
<div ng-controller="controller1">
<div>{{items.magic}}</div>
</div>
<div ng-controller="controller2">
<div>{{items.magic}}</div>
</div>
</body>
我创建了一个小提琴,它演示了一个例子中的行为。
https://jsfiddle.net/w0pq3cp8/1/
您等价地调用shareSvc.items.magic =“magic”; – penner 2015-03-08 20:42:50