我有相當多的場景需要點擊等來觸發頁面上另一個地方的行爲(單向通信場景)。我現在需要雙向通信,其中元素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 2013-04-26 13:07:07
'd.each'應該是'$ .each' – Danita 2013-07-08 16:05:32