Я хочу использовать ui-router для сбора навигации по серии страниц в динамически определенной последовательности. Каждый шаблон является независимым модулем и может быть переупорядочен или пропущен, поэтому я не хочу жестко кодировать атрибут ui-sref для "следующей" кнопки для каждого шаблона.
Для чего я стремлюсь
Как я могу разместить общую страницу на странице, например, сказать
<a ui-sref="next">
Надстройка FutureStates кажется излишним для этого, все состояния уже определены, я просто не знаю до тех пор, пока не исполнится какой порядок они должны быть вызваны.
У меня есть сложные параметры, которые я хочу передать в состояние, которое нельзя поместить на URL.
После сна я понял, что в моем случае проще было использовать ng-click (особенно, поскольку я передаю параметры, которые нелегко кодировать):
<a href="" ng-click="next()">
<script>
function next() {
$state.go(theNextState, { arg1: { subArg: nestedObject } } );
}
</script>
Вот рабочий пример: http://plnkr.co/edit/CnNv08Cfb2dpRsnoOxY8
Я выложу этот код в директиву, чтобы разные модули просто нужно было делать
<next-button>
в их шаблонах.
В некоторых случаях это может вызвать проблемы с доступностью, поскольку ng-click не запускается при навигации по клавиатуре, но в моем контексте это не проблема (поскольку я буду использовать <button>, для которой он срабатывает на клавиатуре). Для других, заинтересованных в том, чтобы сделать это решение доступным, здесь обсуждается: