2014-09-23 13 views
8

UI-Router Version 0.2.11 eingeführt option to turn off strict URL matching, aber ich kann nicht herausfinden, wie man es tatsächlich benutzt.Wie konfiguriere ich den angularen UI-Router, um den strikten URL-Matching-Modus nicht zu verwenden

Ich habe versucht Standard Config wie sie in tests verwenden:

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

Keine dieser Einstellungen arbeiten, so dass ich denke, ich bin entweder etwas falsch zu machen oder es ist verwanzt. Es scheint auch keine Dokumentation darüber zu geben.

+0

Gibt es ein Äquivalent Github Ausgabe öffnen? (Ich kann auch nicht scheinen, dass dies funktioniert) –

+2

@Nate https://github.com/angular-ui/ui-router/issues/1395 Es sollte im Master behoben werden. Ich warte auf die nächste Version, um es zu testen. –

+0

Danke für die Hilfe! –

Antwort

7

Ich glaube, das in 0.2.12 behoben.

Das sagte, ich stieß auf dieses Problem in 0.2.15. Es stellt sich heraus, dass Sie die $urlMatcherFactoryProvider vor dem $stateProvider konfigurieren müssen.

das heißt der folgende Code wird nicht funktionieren:

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

Sie haben die $urlMatcherFactoryProvider zuerst konfigurieren, wie folgt aus:

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

Mit Ui Router 0.2.15 & AngularJS v1.4.7 funktioniert dies nicht. – mcranston18

+0

@ mcranston18 Dies funktioniert mit eckigen-ui-Router 0.2.15 und AngularJS 1.4.5. Ich bezweifle, dass es in 1.4.7 gebrochen hätte, also überprüfe, ob du noch etwas vermisst hast. –

+0

Sorry für die späte Antwort. Es scheint, dass es wirklich repariert wurde. Es scheint jedoch einen neuen Fehler zu geben, der mich daran hindert, '$ urlMatcherFactoryProvider' im Root-Modul zu konfigurieren. Als Workaround setze ich es in das erste untergeordnete Modul, das für das Root-Modul erforderlich ist. –

-6

Verwendung wie diese

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"); 
       }, 
      } 
     }) 
+0

Diese Antwort verwendet 'angular-route', aber die Frage bezieht sich auf' angular-ui-router'. –

Verwandte Themen