Angular 1 UI-Router - HTML5模式param URL始终以正斜杠结尾

时间:2016-08-24 19:48:28

标签: angularjs angular-ui-router html5mode

我有一个基页URL为/ foo /的页面,并设置了我的状态以期待一个参数。

因此,如果用户点击/ foo / user1 /,则 user1 是参数。

是否可以观看两种类型的网址?例如,我可以在同一状态声明/ foo / user1 /和/ foo / user1(注意,没有正斜杠),还是需要创建另一个状态来专门监视尾部斜杠?

目前,它可以是一个或另一个,但不是两个。这是一个准确的陈述,还是我在文档中遗漏了什么?

1 个答案:

答案 0 :(得分: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

有专门的部分