Динамически построенный атрибут ui-sref в ui-router
Я новичок в angular и особенно ui-router.
Вот ссылка:
<a ui-sref="/topic/{{topic.id}}">SomeText</a>
Ссылка динамически заполнена.
Итак, когда я пытаюсь получить доступ к этому состоянию из моего config следующим образом:
.state('topics/:topicId',{
url:"",
templateUrl: "",
controller: ""
})
Я получаю это сообщение об ошибке:
Ошибка: не удалось разрешить '/themes/myTopic' из государственных тем
В приведенном выше примере: myTopic
- это имя переменной.
Ответы
Ответ 1
Ты почти там. Просто параметр должен быть частью определения URL, а не именем состояния:
.state('topics',{
url: '/{id:[0-9]{1,8}}', // we can also add some constraint, like int id only
templateUrl: "",
controller: ""
})
И как его называть (где currentItem.id
будет динамически вводиться как часть некоторого ng-repeat)
<a ui-sref="topics({id:currentItem.id})">SomeText</a>
Потому что ui-sref
означает: ui-sref='stateName({param: value, param: value})
. Подробнее здесь:
Ответ 2
Попробуйте использовать простое имя для состояния 'topics'
и используйте 'topics/:topicId'
как свойство URL.
После этого вы можете использовать ui-sref='topics({topicId: topic.id})'