1
Ich hatte eine Route mit einem param funktioniert aber dann einige Child Routen hinzugefügt und jetzt wird es nicht aktualisiert.UI Router stateParams nicht in untergeordneten Routen aktualisieren
Ereignis-Schablone
<a ui-sref="event.detail({id: event.id})" ng-repeat="event in events">
Event {{event.id}}
</a>
UI Router
.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: ...
}
}
})
-Controller
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!
...
}
}
Run durch von dem, was falsch läuft:
- Klick auf
Event 1
- url Änderungen
event/1
und bekommt die richtigen Ereignisdetails - gehen zurück zur Liste und klicken Sie auf
Event 2
- url Änderungen an
event/2
sondern zeigt Details zur Veranstaltung 1 - Klicken Sie auf die Registerkarte Info, Karte oder Chat und die URL ändert sich von
event/2
zuevent/1/info
,event/1/map
undevent/1/chat
Was macht der 'Ereigniszustand'? Zeigt es etwas? –
Ja, die Vorlage in der Frage wird vom Ereignisstatus gerendert. Es zeigt eine Liste aller Ereignisse an. – barro32
Ich denke, das ist was passiert, zweideutige Routen. Url: 'event/detail/info' durchläuft' event/detail /: id' sowie 'event/detail/info'. Daher ist es mehrdeutig. –