Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to config Angular ui-router to not use strict URL matching mode

ui-router's version 0.2.11 introduced option to turn off strict URL matching, but I can't figure out how to actually use it.

I've tried standard config as they use in tests:

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

None of those settings work, so I guess I'm either doing something wrong or it's bugged. There's also seem to be no documentation about it.

like image 787
Ondrej Slinták Avatar asked Sep 23 '14 11:09

Ondrej Slinták


1 Answers

I believe this was fixed in 0.2.12.

That said, I ran into this problem in 0.2.15. It turns out that you need to configure the $urlMatcherFactoryProvider BEFORE the $stateProvider.

i.e. the following code will NOT work:

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

You have to configure the $urlMatcherFactoryProvider first, like this:

$urlMatcherFactoryProvider.caseInsensitive(true);
$urlMatcherFactoryProvider.strictMode(false); 
$stateProvider.state('login', {
    url: "/login",
    templateUrl: 'templates/login.html',
    controller: 'loginController as loginCtrl'
});
like image 176
AJ Richardson Avatar answered Oct 13 '22 00:10

AJ Richardson