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

时间:2014-09-23 11:46:55

标签: javascript angularjs angular-ui-router

ui-router的0.2.11版本引入了option to turn off strict URL matching,但我无法弄清楚如何实际使用它。

我尝试使用标准配置,因为他们使用in tests

app.config(function ($urlMatcherFactoryProvider) {
  $urlMatcherFactoryProvider.caseInsensitive(true);
  $urlMatcherFactoryProvider.strictMode(false);
});

这些设置都不起作用,所以我想我做错了什么或者它被搞砸了。似乎也没有关于它的文档。

2 个答案:

答案 0 :(得分:8)

我相信这是在0.2.12修复的。





那就是说,我在0.2.15中遇到了这个问题。事实证明,您需要在 $ stateProvider 之前配置 $ urlMatcherFactoryProvider





即。以下代码不起作用:




  $ stateProvider.state('login',{
 url:“/ login”,
 templateUrl:'templates / login.html',
 controller:'loginController as loginCtrl'
});
 $ urlMatcherFactoryProvider.caseInsensitive(true);
 $ urlMatcherFactoryProvider.strictMode(false );
  




首先必须配置 $ urlMatcherFactoryProvider ,如下所示:

&# XA;

 <代码> $ urlMatcherFactoryProvider.caseInsensitive(真);&#XA; $ urlMatcherFactoryProvider.strictMode(假); &#xA; $ stateProvider.state('login',{&#xA; url:“/ login”,&#xA; templateUrl:'templates / login.html',&#xA; controller:'loginController as loginCtrl' &#XA;});&#XA;  
&#XA;

答案 1 :(得分:-6)

像这样使用

app.config(["$routeProvider", "$locationProvider",
    function ($routeProvider, $locationProvider) {
        return $routeProvider.when("/", {
            redirectTo: "/signin"
        })
        .when("/dashboard", {
            templateUrl: "App/views/Dashboard/dashboard.html",

        }).when("/signup", {
            templateUrl: "App/views/signup/signup.html",
            resolve: {
                permission: function (authorizationService, $route) {
                    return authorizationService.permissionCheck("signup");
                },
            }
        })
.when("/myAccount", {
            templateUrl: "App/views/myAccount/myAccount.html",
            resolve: {
                permission: function (authorizationService, $route) {
                    return authorizationService.permissionCheck("myAccount");
                },
            }
        })
        .when("/signin", {
            templateUrl: "App/views/signin/signin.html",
            resolve: {
                permission: function (authorizationService, $route) {
                    return authorizationService.permissionCheck("SKIP");
                },
            }
        })