angular.js - angularjs如何同时监听两个以上的事件?
PHPz
PHPz 2017-05-15 17:03:07
0
2
540

业务场景描述:

假设在子controller中,用户各种点击操作会被分成两个事件,被控制器广播到父控制器中

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

在父控制器中,我们使用$on监听这两个事件没错,

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

但是在某个场景中,我发现这两个事件的执行的是相同的逻辑,所以我想这样写:

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

这是我期望的模式,但是ng很明显是不能这么写的,想问问各位大侠在自己的实际业务中如何做到同时监听两个以上的事件

PHPz
PHPz

学习是最好的投资!

membalas semua(2)
黄舟

Malangnya, ng tidak mempunyai mod yang anda harapkan untuk membuat sedikit helah, anda boleh menulis seperti ini:

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

Anda boleh mengubah fikiran anda, anda hanya menghantar satu acara, dan kemudian membawa parameter yang berbeza apabila menghantar acara ini$emit(name, args); apabila anda mendengar acara ini, nilai parameter dan anda akan tahu apa yang akan anda lakukan seterusnya .

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan