1
我有一個參數工作的路由,但後來添加了一些子路由,現在它不會更新。UI路由器stateParams不在子路由更新
事件模板
<a ui-sref="event.detail({id: event.id})" ng-repeat="event in events">
Event {{event.id}}
</a>
UI路由器
.state('event', {
url: '/event',
views: {
'event': {
template: ..., // shown above
controller: 'Event'
}
}
})
.state('event.detail', {
url: '/:id',
views: {
'event-detail': {
template: ...,
controller: 'EventDetail' // shows a single event
}
}
})
// tabs to switch between the different details
.state('event.detail.info', {
url: '/info',
views: {
'event-info': {
template: ...
}
}
})
.state('event.detail.map', {
url: '/map',
views: {
'event-map': {
template: ...
}
}
})
.state('event.detail.chat', {
url: '/chat',
views: {
'event-chat': {
template: ...
}
}
})
控制器
function EventDetail($scope, $stateParams) {
$scope.getEventDetails = getEventDetails;
$scope.getEventDetails($stateParams.id);
function getEventDetails(id) {
console.log(id); // returns correct first time, then nothing. Used to work every time!
...
}
}
通過運行什麼錯的:
- 點擊
Event 1
- 網址更改爲
event/1
,並得到正確的事件細節 - 回到列表,點擊
Event 2
- 網址更改爲
event/2
但顯示事件細節1 - 點擊信息,地圖或聊天標籤,網址變更從
event/2
到event/1/info
,event/1/map
和event/1/chat
'event'狀態有什麼作用?是否顯示任何東西? –
是的,問題中的模板是由事件狀態呈現的。它顯示了所有事件的列表。 – barro32
我認爲這是發生了什麼,ambigious路線。 Url:'event/detail/info'通過'event/detail /:id'和'event/detail/info'。所以它含糊不清。 –