如何配置Angular ui-router不使用严格的URL匹配模式

Ond*_*ták 8 javascript angularjs angular-ui-router

ui-router的版本0.2.11引入了关闭严格URL匹配的选项,但我无法弄清楚如何实际使用它.

在测试中使用过标准配置:

app.config(function ($urlMatcherFactoryProvider) {
  $urlMatcherFactoryProvider.caseInsensitive(true);
  $urlMatcherFactoryProvider.strictMode(false);
});
Run Code Online (Sandbox Code Playgroud)

这些设置都不起作用,所以我想我要么做错了,要么就是错误的.似乎也没有关于它的文档.

AJ *_*son 8

我相信这在0.2.12修正了.

也就是说,我在0.2.15中遇到了这个问题.事实证明,您需要配置$urlMatcherFactoryProviderBEFORE$stateProvider.

即以下代码将不起作用:

$stateProvider.state('login', {
    url: "/login",
    templateUrl: 'templates/login.html',
    controller: 'loginController as loginCtrl'
});
$urlMatcherFactoryProvider.caseInsensitive(true);
$urlMatcherFactoryProvider.strictMode(false);
Run Code Online (Sandbox Code Playgroud)

你必须配置 $urlMatcherFactoryProvider一个,如下所示:

$urlMatcherFactoryProvider.caseInsensitive(true);
$urlMatcherFactoryProvider.strictMode(false); 
$stateProvider.state('login', {
    url: "/login",
    templateUrl: 'templates/login.html',
    controller: 'loginController as loginCtrl'
});
Run Code Online (Sandbox Code Playgroud)