2016-10-05 112 views
0

$ locationStartChange和$ routeStartChange之間的主要區別是什麼?我知道他們的通話順序。但是兩個服務器有什麼不同的目的或功能?他們之間有什麼區別(如果有的話)?

回答

0

$ locationChangeStart

的locationChangeStart事件可以用來防止位置改變前進,(鏈接或明確$ location.path(「/某事」)上點擊,但是,這個事件不火基於後退按鈕點擊

$ routeChangeStart

此事件的工作原理有點像$ locationChangeStart相反:它是在$ location.path發射兩者()的變化和後退按鈕點擊,但它的前ventDefault()不會停止位置更改。

$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. });

0

他們是不同的。

$ locationChangeStart - 每次URL開始更改時都會獲得回調。

$ routeChangeStart - 在註冊的路由被調用時獲得回調或他自己的任何URL參數。

$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 
相關問題