我有一個注入到我的控制器中的服務。該服務定義了許多功能。angularjs:使用服務在控制器之間進行通信
現在我想添加一個變量,該服務將在應用程序中保存selectedItem。我已經做到了這種方式:
angular.module('myservices', []).
factory('serviceA', function() {
var serviceA= {
selectedItem: selectedItem,
... more functions here
};
return serviceA;
var selectedItem;
... functions go here
});
在我的控制器之一,我設置所選項目:
serviceA.selectedItem = someItem;
和另一個控制器的視圖引用這樣選擇的項目:
<span>{{serviceA.selectedItem.value}}</span>
即使selectedItem設置正確,跨度永遠不會更新。我究竟做錯了什麼 ?
我分叉這撥弄幾個時間前到控制器之間的通信工作: http://jsfiddle.net/patxy/RAVFM/(抱歉,我不記得是誰第一個做的)。 這個小提琴使用一個事件來做到這一點($ scope.broadcast)。我建議你保持服務,並將此事件引入此服務 –
我想避免使用廣播。事實上,angularjs中的服務是單例的,這就是爲什麼我想將它用於跨控制器的共享變量。我只使用廣播併發出指令 – Sam