我有一个CurrentUser模型类,当用户未经过身份验证时,我想抛出一个'NOT_AUTHENTICATED'事件。
在某些页面上,我想使用一个指令来处理这个事件并显示一个模态。
从模型中发出的事件是否会冒泡到指令链接范围?
答案 0 :(得分:1)
角度事件由范围触发并由范围接收。因此,您需要一个$ scope对象来广播一个事件,并且您需要一个范围对象来监听事件。如果通过" model"你的意思是一个角度服务,然后你可以像这样注入$ rootScope和$广播事件......
myApp.factory('theModel', function($rootScope) {
$rootScope.$broadcast('NOT_AUTHENTICATED');
});
该事件将在范围链中消失,并且可以通过链接函数中的指令范围听到。
myApp.directive('theDirective', function () {
return {
...
link:function(scope, element, attrs) {
scope.$on('NOT_AUTHENTICATED', function (event) {
...
}
}
};
});