2

假设我有这个配置:

app.config(['$routeProvider',
  function($routeProvider) {
    $routeProvider
        .when('/', { 
            templateUrl: 'app/partials/index.html',
            controller: 'defaultCtrl'
        })
        .when('/other', {
            templateUrl: 'app/partials/other.html',
            controller: 'errorCtrl'
        })
        .otherwise({ 
            templateUrl: 'app/partials/404.html'
        });
  }
]);

在路由器调用路由之前,我正在寻找一个地方来做一些基本的、常见的维护代码。假设我想在console.clear()每次更改路由时清除控制台日志。如何以及在哪里是代码中的最佳位置?

4

1 回答 1

8

$route服务引发事件$routeChangeStart,您可以使用这些事件来执行此类任务。您可以使用 $scope.$on 方法来实现它们。有点像

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

阅读$route 文档以了解有关此事件和其他此类事件的信息。

$routeProvider配置方法也when可以带一个参数,该参数resolve实际上用于在路由解析之前设置依赖关系。此resolve对象映射也可用于实现您想要做的事情。

于 2013-11-05T11:00:53.540 回答