2016-08-24 36 views
0

我有一個頁面,其基址爲/ foo /,並且已將狀態設置爲期望param。Angular 1 UI-Router - HTML5模式參數URL始終以正斜槓結尾

因此,如果用戶點擊/ foo/user1 /,則user1是參數。

是否可以觀察這兩種類型的網址?例如,我可以在相同狀態下聲明/ foo/user1 /和/ foo/user1(注意,沒有正斜槓),還是需要創建另一個狀態來專門觀察尾部斜槓?

目前,它可以是其中一個,也可以不是兩個。這是一個準確的聲明,還是我在文檔中丟失了一些東西?

+2

也許這就是你想要的 - https://github.com/angular-ui/ui-router/wiki/frequently-asked-questions#how-to-make-a-trailing-slash-optional-for -all-routes –

回答

2

如果你正在使用的ui-router最新版本添加這個在配置塊$urlMatcherFactoryProvider.strictMode(false)但對於舊版本的ui-router添加以下代碼

$urlRouterProvider.rule(function ($injector, $location) { 
    var path = $location.url(); 

    // check to see if the path already has a slash where it should be 
    if (path[path.length - 1] === '/' || path.indexOf('/?') > -1) { 
     return; 
    } 

    if (path.indexOf('?') > -1) { 
     return path.replace('?', '/?'); 
    } 

    return path + '/'; 
}); 

你應該結帳他們FAQ區,有一個trailing slash

專用部分
+0

該規則正是我所期待的。我正在使用最新版本,但$ urlMatcherFactoryProvider.strictMode(false)沒有執行我正在尋找的行爲。感謝您提供這兩個選項,希望我可以投票答覆兩次! – spez86