$stateProvider.state('state1', {
url:'/state1/:param1/and/{param2:.+}',
templateUrl: 'state1.html',
controller: 'State1Controller',
});
Я пытаюсь сделать param2
, используя регулярное выражение, как показано выше. Если он пуст, то состояние по умолчанию следует загружать:Угловой UI-маршрутизатор - как сделать необходимый параметр
$urlRouterProvider.otherwise("/");
$stateProvider.state('otherwise',{
url: '/',
templateUrl:'default.html'
});
Теперь результаты:
state1/1/and/1
идет в state1
. Хорошо.
state1/1/and
имеет значение otherwise
. Хорошо.
Но
state1/1/and/
идет в том состоянии! Ни одно из состояний не загружено. Это не перенаправление на /
. Какие?!
Как правильно выполнить требуемый параметр?
Что находится в State1Controller? Что-нибудь в вашей консоли? Похоже, что что-то в 'state1' может взорваться. Что заставляет вас думать, что «ни штаты не загружены» - вам не хватает представления? – adamdport
'state1.html' не загружен. 'ui-view' пуст. Я также поставил 'console.log ('loaded')' в 'State1Controller' и не выводил на консоль. Ошибок нет. – Shawn
Следующий плункер работает так, как вы ожидали: http://plnkr.co/edit/XTDJ5FAHNh63RoECKwCQ?p=preview –