UI-роутер: передавая в параметре, что не в URL?
У меня проблема с передачей параметра, который не является параметром в URL.
У меня в основном есть следующее по событию клика
let stateParams = {
id: event.info.id,
info: event.info
};
this.$state.go('home.showinfo', stateParams);
Я дважды проверил на StateParams содержит идентификатор, а также информационный объект.
Затем у меня есть следующие настройки на состояние
.state('home.showinfo', {
url: 'info/info/:id',
resolve: {
info: function($stateParams){
return $stateParams.info;
}
},
params: {
info: null
}
В моем контроллере я проверяю значение $ stateparams и вижу идентификатор (также URL содержит идентификатор), но информационный объект имеет значение null. Это всегда ноль. Я просто хочу иметь возможность получить доступ к нему в контроллере. Также "this.info" также является нулевым.
Я поставил точку останова в резоле, и информация пуста.
Я пытался удалить params:{}
выше и еще ничего.
Есть идеи, что я делаю не так?
1 ответ
Есть рабочий поршень
Код должен работать, проверьте дважды вызывающую сторону. Эти ссылки будут делать то, что ожидается:
<a ui-sref="home.showinfo({id:1, info:'hi'})">
<a ui-sref="home.showinfo({id:2, info:'bye'})">
Существует состояние, как указано выше:
.state('home.showinfo', {
url: 'info/info/:id',
templateUrl: 'showinfo.tpl.html',
resolve: {
info: function($stateParams){
return $stateParams.info;
}
},
params: {
info: null
}
})
Проверьте это здесь