如果我有兩個控制器和一個在控制器之間通信的服務,一個控制器的作用域如何影響服務中的值?對我來說,它看起來像設置控制器的價值與服務的價值,這就是它,但不知何故控制器可以更改服務值,而無需調用任何設置方法?這是一種處理服務的好方法嗎? 我搜索了它,但找不到一個好的答案。文檔和博客帖子的答案和例子,歡迎,謝謝。服務和控制器之間的魔術連接(角度)
// 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