Rumah > Soal Jawab > teks badan
angular controller
之间通过事件传递值
页面每次刷新路由都会对视图 ui-view
进行刷新,
绑定在内的控制器
angular.controller('listCtrl',[])
会进行重载,(因为我把 listCtrl
控制器绑定到了视图内的标签上)
controller
内的
$scope.$on('testData',function(ev,data){
//
})
会记录 listCtrl
重载的次数,等接收到 testData
事件的时候,$on
会重复执行相应的次数。
我只想让 testData
执行一次,应该怎么做
曾经蜡笔没有小新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...