2016-08-02 57 views
0

在我的角度項目它,我解決大部分航線從一個通配符捕捉角度通配符途徑,如果不存在

function getTemplateUrl (route) { 
    return '/views/' + route.page + '.html'; 
} 
.when('/:page', { templateUrl : getTemplateUrl }) 
.when('/:page/:edit', { templateUrl : getTemplateUrl }) 
.otherwise({redirectTo: '/dashboard'}); 

唯一的問題,就是當路由不存在,它仍然會嘗試加載頁面,而不是otherwise函數並一遍又一遍地加載頁面,從而創建一個無限循環。

有沒有什麼辦法可以檢查路線是否存在?

+0

您沒有爲'dashboard'添加路線尚未儀表板的路線。 –

回答

0

當你想所有其他網頁重定向到dashboard,應指定前otherwise

function getTemplateUrl (route) { 
    return '/views/' + route.page + '.html'; 
} 
.when('/:page', { templateUrl : getTemplateUrl }) 
.when('/:page/:edit', { templateUrl : getTemplateUrl }) 
.when('/dashboard', { templateUrl : getTemplateUrl }) 
//add dashboard route before otherwise 
.otherwise({redirectTo: '/dashboard'}); 
+0

但':page'將會匹配'/ dashboard',所以它將永遠不會到達硬編碼的儀表板路由,就像它不會到達其他地方一樣。 –