angular.js - angular $scope.$on 接收事件重复执行
给我你的怀抱
给我你的怀抱 2017-05-15 17:05:58
0
1
967

angular controller 之间通过事件传递值

页面每次刷新路由都会对视图 ui-view 进行刷新,

绑定在内的控制器

angular.controller('listCtrl',[])

会进行重载,(因为我把 listCtrl 控制器绑定到了视图内的标签上)

controller 内的

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

会记录 listCtrl 重载的次数,等接收到 testData 事件的时候,$on 会重复执行相应的次数。

我只想让 testData 执行一次,应该怎么做

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

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