2014-03-06 56 views
0

我有一個應用程序構建在angular.js上,並且我希望在路線更改並且視圖中呈現新模板時運行函數。我找到了一種方法做一個控制器被激活時,像這樣:在每個路線變化上運行函數

$scope.$on('$routeChangeStart', function(next, current){ 
    //...do stuff here... 
}); 

但有一種方式來運行的每條路線改變的功能,所以我只需要輸入一次呢?

回答

1

如果這是你的看法

<div ng-app='myApp'> 
    <ng-view/> 
</div> 

將其更改爲

<div ng-app='myApp' ng-controller='RootController'> 
    <ng-view/> 
</div> 

在你RootController您可以添加的事件處理程序$routeChangeStart。由於您的RootController只創建一次,並保留在應用程序的整個生命週期中,因此您可以在此安全地訂閱此事件。

+0

非常感謝。它運作良好。 –

3

我有一個更好的解決方案。 U可以在你的主文件(你定義你的應用程序的地方)添加一個運行塊,併爲$ routeChangeStart插入一個事件處理程序。這樣你不必添加任何東西到你的html。看到我的例子:

yourAppNAme.run(function($rootScope) { 
    $scope.$on('$routeChangeStart', function(next, current){ 
     //...do stuff here... 
    }); 
}); 

這個exmaple cheked,我目前正在研究我的angularjs應用程序。

相關問題