$ locationStartChange和$ routeStartChange之间的关键区别?我知道他们的通话顺序。但这两个serv是不同的目的或功能?他们之间的区别(如果有的话)是什么?
答案 0 :(得分:0)
<强> $ locationChangeStart 强>
locationChangeStart事件可用于防止位置更改(单击链接或显式$ location.path(“/ something”);但是,此事件不会在后退按钮单击时触发。
<强> $ routeChangeStart 强>
此事件的工作方式与$ locationChangeStart相反:它在$ location.path()更改和Back按钮点击时触发,但其preventDefault()不会停止位置更改。
$rootScope.$on("$locationChangeStart",function(event, next, current){
//do your validations here
//prevent the location change.
event.preventDefault();
});
$rootScope.$on("$routeChangeStart",function(event, next, current){
//do your validations here
event.preventDefault();//this will NOT work.
});
答案 1 :(得分:0)
是他们是不同的。
$ locationChangeStart - 每次网址开始更改时都会收到回调。
$ routeChangeStart - 在调用注册路由或任何自己的网址参数时获取回调。
$routeProvider.when("/books/:book_id?read", {
controller: "yourController",
templateUrl: "/views/test.html"
});
$rootScope.$on('$locationChangeSuccess', function (event) {
});
$rootScope.$on('$routeChangeStart', function (event) {
});
$location.search('read', 'true'); // will trigger both
$location.search('unread', 'true'); // just $locationChangeSuccess
$location.path('/books'); // will trigger both