angular.js - Bagaimana untuk mendengar lebih daripada dua acara pada masa yang sama dalam angularjs?
PHPz
PHPz 2017-05-15 17:03:07
0
2
570

Perihalan senario perniagaan:

Anggapkan bahawa dalam pengawal anak, pelbagai operasi klik pengguna akan dibahagikan kepada dua acara, yang akan disiarkan kepada pengawal induk oleh pengawal

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

Dalam pengawal induk, kami menggunakan $on untuk mendengar dua acara ini

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

Tetapi dalam adegan tertentu, saya mendapati bahawa kedua-dua peristiwa ini melaksanakan logik yang sama, jadi saya ingin menulisnya seperti ini:

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

Ini adalah mod yang saya jangkakan, tetapi ng jelas tidak boleh ditulis seperti ini. Saya ingin bertanya kepada anda bagaimana untuk memantau lebih daripada dua acara pada masa yang sama dalam perniagaan sebenar anda

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