在AngularJS中,是否有攔截未在routeProvider中定義的路由更改的方法,以便可以在數據庫中查找路由,並且如果數據庫,新的路由可以添加到routeProvider?在沒有路徑匹配的情況下捕獲AngularJS中的路由更改
我讀過它可以動態地添加一條路線,但是我需要在當前路線不匹配的時候這樣做。
在AngularJS中,是否有攔截未在routeProvider中定義的路由更改的方法,以便可以在數據庫中查找路由,並且如果數據庫,新的路由可以添加到routeProvider?在沒有路徑匹配的情況下捕獲AngularJS中的路由更改
我讀過它可以動態地添加一條路線,但是我需要在當前路線不匹配的時候這樣做。
我會用$ routeProvider的其他方式方法加載一個預定義的頁面(控制器)來處理不確定的路線。
otherwise({
templateUrl: 'addRoute.html',
});
然後,進入該控制器,使用$ location($ location.url())獲取當前路由請求。 如果需要動態地添加這條路線:
$route.routes['/new'] = {templateUrl: 'new.html'};
最後,使用重定向到這條路線:
$location.path('/new');
顯然,對於這個工作,你將需要注入$路徑和$位置爲依賴於你控制器。
假設你可以在控制器做到這一點,你可以捕捉到這些事件如下:
$rootScope.$on("$routeChangeSuccess", function (event, next, current) {
if(!angular.isDefined($route.current.$$route))
addDynamicRoute('using techniques mentioned above');
else
handleOtherStuff();
});
看看這個:http://stackoverflow.com/questions/13153121/how-to-defer-routes-definition-in-angular-js/13173667#13173667 – nweg
謝謝,我讀過它是可能會添加,但我需要捕獲事件或路由生命週期中角點引擎未找到匹配的點,以便我可以插入代碼來處理不匹配。 – MaryJosie