根據文檔,angularjs ui-router url參數默認是可選的。那麼有沒有辦法創建強制參數?就像參數丟失或爲空時不會進入頁面一樣?AngularJS ui路由器強制性參數
希望你能幫助我。
感謝
根據文檔,angularjs ui-router url參數默認是可選的。那麼有沒有辦法創建強制參數?就像參數丟失或爲空時不會進入頁面一樣?AngularJS ui路由器強制性參數
希望你能幫助我。
感謝
使用UI路由器resolve檢查路線PARAMS丟失。
//Example of a single route
.state('dashboard', {
url: '/dashboard/:userId',
templateUrl: 'dashboard.html',
controller: 'DashboardController',
resolve: function($stateParams, $location){
//Check if url parameter is missing.
if ($stateParams.userId === undefined) {
//Do something such as navigating to a different page.
$location.path('/somewhere/else');
}
}
})
以上回答prasents 決心的不正確使用時,如果註釋的代碼,甚至是精縮會失敗。 Look at this issue我花了很多時間調試它,因爲[email protected]不會警告您應該反對解決方案。
resolve: {
somekey: function($stateParams, $location){
//Check if url parameter is missing.
if ($stateParams.userId === undefined) {
//Do something such as navigating to a different page.
$location.path('/somewhere/else');
}
}
如果您需要縮小,
您缺少一個結束括號。 – sfs
爲什麼不「如果(typeof運算PARAM === '未定義'),然後重定向? – user3791775
或之前在您的模板,只是不顯示鏈接? – user3791775
這不符合我的觀點。此外,我不能在我的控制器上做到這一點,有沒有辦法在聲明狀態時做到這一點? – Jed