angular.js - angular $scope.$on menerima acara dan melaksanakannya berulang kali
给我你的怀抱
给我你的怀抱 2017-05-15 17:05:58
0
1
996
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

给我你的怀抱
给我你的怀抱

membalas semua(1)
曾经蜡笔没有小新

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...

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