angularjs – 在$范围内侦听多个事件

前端之家收集整理的这篇文章主要介绍了angularjs – 在$范围内侦听多个事件前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个指令,使用$ scope。$ on将某些函数绑定到本地范围。

可以在同一个调用中将同一个函数绑定到多个事件吗?

理想情况下,我可以这样做:

app.directive('multipleSadness',function() {
    return {
        restrict: 'C',link: function(scope,elem,attrs) {
            scope.$on('event:auth-loginrequired event:auth-loginSuccessful',function() {
                console.log('The Ferrari is to a Mini what AngularJS is to ... other JavaScript frameworks');
            });
        }
    };
});

但这不行。与[‘event:auth-loginrequired’,’event:auth-loginConfirmed’]替换的逗号分隔事件名称字符串的示例也不会wrk。

这是什么工作:

app.directive('multipleSadness',attrs) {

            scope.$on('event:auth-loginrequired',function() {
                console.log('The Ferrari is to a Mini what AngularJS is to ... other JavaScript frameworks');
            });
            scope.$on('event:auth-loginConfirmed',function() {
                console.log('The Ferrari is to a Mini what AngularJS is to ... other JavaScript frameworks');
            });
        }
    };
});

但这不是理想的。

一次可以将多个事件绑定到同一个函数

是。喜欢这个:
app.directive('multipleSadness',attrs) {

            function sameFunction(eventId) {
                console.log('Event: ' + eventId + '. The Ferrari is to a Mini what AngularJS is to ... other JavaScript frameworks.');
            }

            scope.$on('event:auth-loginrequired',function() {sameFunction('auth-loginrequired');});
            scope.$on('event:auth-loginConfirmed',function () {sameFunction('auth-loginConfirmed');});
        }
    };
});

但只是因为你可以,不意味着你应该:)如果事件继续传播到另一个监听者,并且处理方式不一样,那么也许有一种情况要做。如果这将是唯一的听众,而不是你应该发出(或广播)相同的事件。

猜你在找的Angularjs相关文章