Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 指令处理来自模型的事件_Angularjs_Angularjs Directive_Angularjs Scope - Fatal编程技术网

Angularjs 指令处理来自模型的事件

Angularjs 指令处理来自模型的事件,angularjs,angularjs-directive,angularjs-scope,Angularjs,Angularjs Directive,Angularjs Scope,我有一个CurrentUser模型类,当用户没有经过身份验证时,我想抛出一个“not_authenticated”事件 在某些页面上,我想使用一个指令来处理这个事件并显示一个模式 从模型发出的事件是否会冒泡到指令链接作用域?角度事件由作用域触发和接收。因此,您需要一个$scope对象来广播一个事件,您需要一个scope对象来监听一个事件。如果“model”是指角度服务,那么可以像这样注入$rootScope和$broadcast事件 myApp.factory('theModel', funct

我有一个CurrentUser模型类,当用户没有经过身份验证时,我想抛出一个“not_authenticated”事件

在某些页面上,我想使用一个指令来处理这个事件并显示一个模式


从模型发出的事件是否会冒泡到指令链接作用域?

角度事件由作用域触发和接收。因此,您需要一个$scope对象来广播一个事件,您需要一个scope对象来监听一个事件。如果“model”是指角度服务,那么可以像这样注入$rootScope和$broadcast事件

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) {
               ...
            }

        }

    };
});

在实现与作用域无关的应用程序信号时,请使用在指令和用户类中注入的服务,而不是作用域事件。服务如何侦听事件?