代码之家  ›  专栏  ›  技术社区  ›  Hans Westman

每次更改路线时运行功能

  •  0
  • Hans Westman  · 技术社区  · 12 年前

    我有一个基于angular.js构建的应用程序,每当更改路线并在视图中呈现新模板时,我都想运行一个函数。我找到了一种方法,当控制器激活时,可以在控制器中执行此操作,如下所示:

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

    但是有没有办法在每次路线更改时运行一个函数,所以我只需输入一次?

    2 回复  |  直到 12 年前
        1
  •  3
  •   Tomer Pearl    12 年前

    我有一个更好的解决方案。您可以在主文件中添加一个运行块(在其中定义应用程序),并插入$routeChangeStart的事件处理程序。这样你就不必在html中添加任何内容。看看我的前任:

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

    这名前男友和我目前正在开发angularjs应用程序。

        2
  •  1
  •   Chandermani    12 年前

    如果这是你的观点

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

    将其更改为

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

    在您的 RootController 可以为添加事件处理程序 $routeChangeStart 。自从你 根控制器 创建一次并在应用程序的生命周期内保留,您可以在此处安全订阅此事件。