Я использую UL-маршрутизатор AngularJS для маршрутизации. В настоящее время у меня есть:
$stateProvider.state('mystate',
{
url: '/mystate/{id:int}/:slug/',
params: {
slug: {value: null, squash: true}
},
templateUrl: 'partials/mystate.html',
controller: 'MyStateCtrl'
}
);
Параметры id
и дополнительных slug
URL-адресов фиксируются, если существует обратная косая черта. Если нет обратной обратной косой черты, этот шаблон даже не согласован. Мне нужно, чтобы он соответствовал или не поддерживал обратную косую черту во всех случаях. Как я могу это сделать?
Мне сказали, что здесь, чтобы прикрепить следующий конфиг на моем приложении:
.config(['$urlMatcherFactoryProvider', function($urlMatcherFactoryProvider) {
$urlMatcherFactoryProvider.strictMode(false);
}
]
)
Я сделал. Но это все равно не работает без завершающих косых черт. Что мне делать?
Параметры маршрута в UI Router по умолчанию не являются обязательными. Вот почему нужна косая черта. Я могу подумать о двух решениях, чтобы избежать косой черты, если кто-то не хочет использовать подход параметров запроса:
parameterless
.params
но в этом случае необязательный параметр не будет отображаться в URL-адресе.Пример кода:
$stateProvider
.state('mystate', {
url: '/mystate/{id:int}',
params: {
slug: {value: null, squash: true}
},
templateUrl: 'partials/mystate.html',
controller: 'MyStateCtrl'
})