[英]How to use $urlRouterProvider.otherwise in angular js
[英]How to use $urlRouterProvider.rule
好的,這可能是UI-Router的錯誤,或者僅僅是我的錯。 我在Git上發布了一個問題https://github.com/angular-ui/ui-router/issues/2342 ,目前還沒有答復,非常適合有人在這里提供幫助
如果我做這樣的事情:
angular.module('myapp', [ 'ui.router' ])
.config(function($stateProvider, $urlRouterProvider){
$urlRouterProvider.otherwise("/state1");
$urlRouterProvider.rule(function ($injector, $location) {
return "/state2";
});
$stateProvider
.state('state1', {
url: "/state1",
views: {
"mainview": { template: "state1.html" }
}
})
.state('state2', {
url: "/state2",
views: {
"mainview": { template: "state2.html" }
}
});
})
.controller('AppCtrl', AppCtrl);
function AppCtrl(){
}
地址欄已更改,但未加載state2.html
,只有空白頁,沒有state2.html
任何錯誤
非常感謝您提供任何可能的解決方案。
將.rule
視為AOP過濾器。 這只是一個方面
與之相比,它被視為“最后一個URL解析處理程序”。
因此,如文檔中所述,最好的用法是引入不區分大小寫的url支持:
定義$ urlRouterProvider使用的規則來查找特定URL的匹配項。
rule
object
Handler函數,以$ injector和$ location服務作為參數。 您可以使用它們以字符串形式返回有效路徑。例:
var app = angular.module('app', ['ui.router.router']); app.config(function ($urlRouterProvider) { // Here's an example of how you might allow case insensitive urls $urlRouterProvider.rule(function ($injector, $location) { var path = $location.path(), normalized = path.toLowerCase(); if (path !== normalized) { return normalized; } }); });
上面有一個例子
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.