Ответ 1
Спасибо за ваш ответ, это помогло мне в правильном направлении, но я просто хотел бы добавить более полное описание.
В моей конкретной проблеме был сложный фактор, потому что состояние, в которое мне нужно было ввести параметр без URL-адреса, было дочерним. Это немного сложно.
Часть params: ['id']
находится в объявлении $stateProvider
следующим образом:
$stateProvider.state('parent', {
url: '/:parentParam',
templateUrl: '...',
controller: '...'
}).
state('parent.child', {
params: ['parentParam','childParam'],
templateUrl: '...',
controller: '...'
});
И имя параметра связано с атрибутом ui-sref
следующим образом:
<a ui-sref=".child({ childParam: 'foo' })">
И это уловка:
Если родительское состояние также имеет параметр URL, тогда для дочернего требуетсятакже объявить, что в массиве
params
. В приведенном выше примере "parentParam" должен быть включен в дочернее состояние.
Если вы этого не сделаете, тогда при инициализации приложения будет выведено сообщение об ошибке модуля. Это, по крайней мере, актуально в последней версии на момент написания статьи (v.0.2.10).
ИЗМЕНИТЬ
@gulsahkandemir указывает, что
Объявление параметров в определении состояния изменилось на params: { id: {}} из params: ['id']
Судя по списку изменений, это, по-видимому, имеет место, начиная с v0.2.11
Детали параметров можно найти в официальных документах