У меня есть служба, которая вводится в мои контроллеры. Служба определяет ряд функций.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>
Пробел никогда не обновляется, хотя выбранный элемент установлен правильно. Что я делаю не так ?
Я разыграл эту скрипку несколько раз, чтобы работать над связью между контроллерами: http://jsfiddle.net/patxy/RAVFM/ (извините, я не помню, кто сделал это сначала). Эта скрипка использует событие для этого ($ scope.broadcast). Я предлагаю вам сохранить службу и запустить событие в эту службу. –
Я хочу избежать использования трансляции.На самом деле, службы в angularjs являются singleton, и именно поэтому я хочу использовать его для общей переменной между контроллерами. Я только использовал трансляцию и излучал для директив – Sam