cari

Rumah  >  Soal Jawab  >  teks badan

angular.js - angular $scope.$on menerima acara dan melaksanakannya berulang kali

Lulus nilai antara

sudut controller melalui acara

Setiap kali halaman memuat semula laluan, paparan ui-view akan dimuat semula,

Pengawal terikat

angular.controller('listCtrl',[])

akan dimuat semula (kerana saya mengikat pengawal listCtrl pada label dalam paparan)

controller dalam

$scope.$on('testData',function(ev,data){
 //
})

akan merekodkan bilangan kali listCtrl dimuatkan semula Apabila acara testData diterima, $on akan dilaksanakan berulang kali untuk bilangan kali yang sepadan.

Saya hanya mahu testData dilaksanakan sekali, apa yang perlu saya lakukan

给我你的怀抱给我你的怀抱2799 hari yang lalu1021

membalas semua(1)saya akan balas

  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-15 17:07:58

    Terima kasih atas jemputan, tulis perkhidmatan atau gantung pembolehubah global pada $rootScope

    if(!$rootScope.isInvoked) {
        var unbindHandler = $scope.$on('testData', function(evt, data) {
            //执行完成后就把该事件解绑 
            unbindHandler();
            $rootScope.isInvoked = true;
        });
    }

    Sudah tentu, mengenai langganan dan penghantaran acara, jika ia bukan sesuatu seperti penghalaan yang memerlukan pemberitahuan kepada semua skop, adalah disyorkan untuk tidak menggunakan mekanisme acara yang disertakan dengan AngularJS Adalah disyorkan untuk menulis perkhidmatan EventBus untuk dikendalikan itu sendiri. Oleh kerana mekanisme peristiwa AngularJS perlu melintasi keseluruhan pokok skop, prestasinya adalah purata.

    Syorkan ringkasan dalaman pasukan kami:
    https://github.com/ShuyunXIAN...

    balas
    0
  • Batalbalas