angular.js $ scope。$ broadcast,$ scope。$ emit,$ rootScope。$ broadcast使用什么?
我正在构建一个搜索指令,我希望我的应用程序的多个其他指令能够侦听对文本搜索的更改。
我试图理解广播和发射之间的区别,以及最适合我的目的的是什么。
据我了解,$ broadcast和$ emit之间的区别在于$ broadcast只是在范围树下,而$ emit则在范围树上。
到目前为止,我一直在使用$ rootScope。$ broadcast来处理我的事件,这些事件大部分都是全局的。 这是做事的正确方式吗? 如果我有太多的rootScope。$广播事件,我应该担心吗? 或者这是一个非问题。
通常,您不应该在整个地方注入$rootScope
。 它通常会成为一个拐杖,你最终会有很多“全局变量”
我要么建立一个抽象$rootScope.broadcast
调用的服务,要么简单地使用databinding:
<my-directive text-search="foo"></my-directive>
与一个控制器一样:
.directive('myDirective', [function() {
return {
link: function($element, $scope, $attrs) {
$scope.$watch($attrs.textSearch, function(newValue, oldValue) {
// Do stuff here...
});
}
};
}]);
链接地址: http://www.djcxy.com/p/18729.html
上一篇: angular.js $scope.$broadcast, $scope.$emit, $rootScope.$broadcast what to use?