angular.js - angularjs如何同時監聽兩個以上的事件?
PHPz
PHPz 2017-05-15 17:03:07
0
2
560

業務場景描述:

假設在子controller中,使用者各種點擊操作會被分成兩個事件,被控制器廣播到父親控制器中

$scope.$emit('ngUserLogin');
$scope.$emit('ngUserUpdate');

在父控制器中,我們使用$on監聽這兩個事件沒錯,

$scope.$on('ngUserlogin', function(){"}
$scope.$on('ngUserUpload', function(){"}

但是在某個場景中,我發現這兩個事件的執行的是相同的邏輯,所以我想這樣寫:

$scope.$on(['ngUserlogin','ngUserUpload'], function(){"}

這是我期望的模式,但是ng很明顯是不能這麼寫的,想問各位大俠在自己的實際業務中如何做到同時監聽兩個以上的事件

PHPz
PHPz

学习是最好的投资!

全部回覆(2)
黄舟

很可惜,ng沒有你期望的這種模式,做一個小trick,可以這麼寫:

angular.forEach(['ngUserlogin','ngUserUpload'], function(value){
    $scope.$on(value, function(event){
        console.log(event.name);//执行你想要的吧
    });
});
phpcn_u1582

你可以換個思路,你只發送一個事件,然後在發送這個事件的時候帶上不同的參數$emit(name, args);;監聽到這個事件的時候判斷一下那個參數,就知道接下來你要做什麼了。

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板