我有一個應用程序構建在angular.js上,並且我希望在路線更改並且視圖中呈現新模板時運行函數。我找到了一種方法做一個控制器被激活時,像這樣:在每個路線變化上運行函數
$scope.$on('$routeChangeStart', function(next, current){
//...do stuff here...
});
但有一種方式來運行的每條路線改變的功能,所以我只需要輸入一次呢?
我有一個應用程序構建在angular.js上,並且我希望在路線更改並且視圖中呈現新模板時運行函數。我找到了一種方法做一個控制器被激活時,像這樣:在每個路線變化上運行函數
$scope.$on('$routeChangeStart', function(next, current){
//...do stuff here...
});
但有一種方式來運行的每條路線改變的功能,所以我只需要輸入一次呢?
如果這是你的看法
<div ng-app='myApp'>
<ng-view/>
</div>
將其更改爲
<div ng-app='myApp' ng-controller='RootController'>
<ng-view/>
</div>
在你RootController
您可以添加的事件處理程序$routeChangeStart
。由於您的RootController
只創建一次,並保留在應用程序的整個生命週期中,因此您可以在此安全地訂閱此事件。
我有一個更好的解決方案。 U可以在你的主文件(你定義你的應用程序的地方)添加一個運行塊,併爲$ routeChangeStart插入一個事件處理程序。這樣你不必添加任何東西到你的html。看到我的例子:
yourAppNAme.run(function($rootScope) {
$scope.$on('$routeChangeStart', function(next, current){
//...do stuff here...
});
});
這個exmaple cheked,我目前正在研究我的angularjs應用程序。
非常感謝。它運作良好。 –