У меня немного сложная настройка с большим количеством вложенных вкладок/просмотров.
Вот соответствующие части моего $stateProvider
$stateProvider
.state('tab', {
abstract: true,
url: '',
templateUrl: 'tabs.html'
})
.state('tab.event', {
url: '/event',
views: {
'event': {
abstract: true,
templateUrl: 'event-tabs.html'
}
}
})
.state('tab.event.list', {
url: '/list',
views: {
'list': {
templateUrl: 'event-list.html'
}
}
})
.state('tab.event.detail', {
cache: false,
url: '/:id',
views: {
'detail': {
abstract: true,
templateUrl: 'event-detail-tabs.html'
}
}
})
.state('tab.event.detail.info', {
cache: false,
url: '/info',
views: {
'info': {
templateUrl: 'event-detail-info.html'
}
}
})
.state('tab.event.detail.map', {
cache: false,
url: '/map',
views: {
'map': {
templateUrl: 'event-detail-map.html'
}
}
});
- Используя
ui-sref="tab.event.detail({id: event.id})"
, я могу ссылаться на состояниеtab.event.detail.info
, а URL-адрес меняется на/event/:id/info
, хорошо. - Если я введу URL
/event/:id
, он перенаправится на/event/:id/info
, good. - НО, если я введу URL
/event/:id/info
, состояние изменится наtab.event.list
и URL на/event/list
, не хорошо.
Я хотел бы иметь возможность обмениваться ссылками с /event/:id/info
и /event/:id/map
, но они перенаправляются на /event/list
Пробовал много вещей, но не мог заставить его работать, пожалуйста, помогите!
Изменить: сделал пример Plunker, но я не могу реплицировать проблему, потому что я не могу напрямую манипулировать URL-адресом приложения. https://plnkr.co/edit/7iZAH26SwAILqBfkdXJS?p=preview