Angularjs 带有路由的自定义状态输入和状态输出代码
我有一个相当简单的Angular项目,它在JavaScript中路由到两个不同的URL:Angularjs 带有路由的自定义状态输入和状态输出代码,angularjs,angularjs-routing,Angularjs,Angularjs Routing,我有一个相当简单的Angular项目,它在JavaScript中路由到两个不同的URL: function RootController($scope) {}; function PageOneController($scope) {}; angular.module('mymodule', []).config( ['$routeProvider', function($routeProvider) { $routeProvider.when('/', {
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!"); }
});
有没有办法做到这一点?在进入状态/路由时,我需要绑定事件侦听器,在退出时,我需要销毁它们并拆除它们 有两个事件$routeChangeStart
和$routeChangeSuccess
,它们可以对您有所帮助
您可以在退出前使用$routeChangeStart
,进入时使用$routeChangeSuccess
您可以在任何控制器上执行$scope.$on
,以监视这些事件