У меня довольно много сценариев, где мне нужны клики и т. Д., Чтобы вызвать поведение в другом месте на странице (сценарий односторонней связи). Теперь мне нужна двунаправленная связь, где вещи, которые происходят в элементе A, могут изменять определенные свойства в области за элементом B и наоборот. До сих пор я использую $rootScope.$broadcast
, чтобы облегчить это, но он чувствует, как массовое убийство, и ветры создания шаблонного в обоих местах:AngularJS: двунаправленная связь между двумя областями/контроллерами через службу
$scope.$on('event-name', function(event, someArg) {
if(someArg === $scope.someProperty) return;
$scope.someProperty = someArg;
});
$scope.$watch('someProperty', function(newValue) {
$rootScope.$broadcast('event-name', newValue);
});
Есть ли лучший способ? Я хотел бы связать две (или три или N) области вместе с помощью службы, но я не вижу способа сделать это без имен волшебных событий и шаблона.
Интересно ... это в основном то же самое, используя события, но без пузырьков и пузырьков (или погружения? = P). Это уменьшает условный размер шаблона. – FMM
'd.each' должно быть' $ .each' – Danita