我有一个相当简单的Angular项目,它在JavaScript中路由到几个不同的URL:
function RootController($scope) {};
function PageOneController($scope) {};
angular.module('mymodule', []).config(
['$routeProvider', function($routeProvider) {
$routeProvider.when('/', {
templateUrl: "templates/root.html",
controller: RootController
}).when('/page1/', {
templateUrl: "templates/page1.html",
controller: PageOneController
}).otherwise({redirectTo: '/'});
}]
);
到目前为止,一切都很顺利,但我确实需要一种方法来在输入和退出这些路径时运行一些JavaScript函数。即:
$routeProvider.when('/', {
templateUrl: "templates/root.html",
controller: RootController,
onenter: function() { console.log("Enter!"); },
onexit: function() { console.log("Exit!"); }
});
有没有办法在Angular中执行此操作?在输入状态/路由时,我需要绑定事件侦听器,在退出时我需要销毁它们并拆除它们。
答案 0 :(得分:5)
$route service有两个事件$routeChangeStart
和$routeChangeSuccess
,这些可以为您提供一些帮助。
您可以在退出前使用$routeChangeStart
,在输入时使用$routeChangeSuccess
。
您可以在任何控制器上$scope.$on
观看这些事件。