2
我知道$ emit和$ broadcast之間的區別,但我想知道將這兩者結合是一種好的做法,而將來的層次結構可能更復雜?
考慮以下情況:
- 我有兩個鄰居的意見(讓我們稱之爲Child1,CHILD2)主視圖(Parent1)內,我想這兩個鄰國之間傳遞的事件。
- 未來,Child1,Child2的觀點可能有未來的父母。
在我的以下示例中,我將「喚醒」字符串從Child1傳遞給Child2(而Parent1是傳遞此數據的人)。 步步什麼技術上發生了:
- Child1發送 '喚醒'($發出)
- Parent1抓($上)這一事件,並傳送到孩子2($廣播)
- CHILD2是通知($上)
代碼:
function ControllerParent1($scope) {
$scope.$on('myEmit', function(event, args) {
$scope.$broadcast('myBroadcast', args.message); //Step2
};
}
function ControllerChild1($scope) {
$scope.$on('myEmit', function(event, args) {
$scope.$emit('send', {message: 'wake up'}); //Step1
});
}
function ControllerChild2($scope) {
$scope.$on('myBroadcast', function(event, args) {
$scope.message = args.message; //Step3
});
}
現在這種感覺對我來說非常技術性的,我不知道大約T t他的做法是否是角度工作的正確方式?未來可能會更復雜。
我覺得你應該想想'$ rootScope $ emit'&'$ rootScope $ on'將傳播事件。僅限於'$ rootScope' ..有關性能優化的更多詳細信息,我強烈建議您閱讀[本文](http://www.bennadel.com/blog/2807-using-rootscope-emit-as-一個性能優化功能於angularjs.htm) –