angular controller
之間透過事件傳遞值
頁面每次刷新路由都會對視圖 ui-view
進行刷新,
綁定在內的控制器
angular.controller('listCtrl',[])
會進行重載,(因為我把 listCtrl
控制器綁定到了視圖內的標籤上)
controller
內的
$scope.$on('testData',function(ev,data){
//
})
會記錄 listCtrl
重載的次數,等接收到 testData
事件的時候,$on
會重複執行對應的次數。
我只想讓 testData
執行一次,我應該怎麼做
謝邀, 寫一個 service 或在 $rootScope 上掛一個全域變數
當然,關於事件訂閱與發送這塊如果不是像路由這種需要通知所有scope的情況,建議不要使用AngularJS自帶的事件機制,建議自己寫一個EventBus服務去處理。因為AngularJS的事件機制需要遍歷整個scope樹,所以性能一般。
推薦一篇我們團隊內部的總結:
https://github.com/ShuyunXIAN...