我有一个注入到我的控制器中的服务。该服务定义了许多功能。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