cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - Bagaimana untuk mendengar lebih daripada dua acara pada masa yang sama dalam angularjs?

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

PHPzPHPz2808 hari yang lalu576

membalas semua(2)saya akan balas

  • 黄舟

    黄舟2017-05-15 17:05:07

    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);//执行你想要的吧
        });
    });

    balas
    0
  • phpcn_u1582

    phpcn_u15822017-05-15 17:05:07

    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 .

    balas
    0
  • Batalbalas