Состояние приложения с необязательным параметром и без косой черты
.state('tabs.map', {
url:'/map/{location_id}',
params: {
location_id: { value: -1 }
},
views: {
'map-tab':{
templateUrl:'templates/map.html',
controller:'MapCtrl'
}
}
})
Я пробовал несколько различных опций для дополнительных параметров, которые я нашел в Интернете, но ни один из них не работает так, как я ищу. Код, который я добавил, позволяет:
/tab/map/.*?
/ Вкладка / Карта /
но нет
/ Вкладка / карта
Я не уверен, почему косая черта вызывает проблемы, потому что из того, что я прочитал, это не должно быть проблемой. Кто-нибудь знает, как решить эту проблему?
Недавно посоветовали
- Angular UI-Router: несколько URL для одного состояния
- Пользовательский интерфейс AngularJs - одно состояние с несколькими URL
- Могут ли маршруты angularjs иметь необязательные значения параметров?
- Проблемы Laravel 4 Route с несколькими и дополнительными параметрами get
Решение
Введение сквоша в переменную param
.state('tabs.map', {
url:'/map/:location_id',
params: {
location_id: { value:null, squash:true }
},
views: {
'map-tab':{
templateUrl:'templates/map.html',
controller:'MapCtrl'
}
}
})
1 ответ
Решение
Вы можете использовать параметр squash, чтобы разрешить без косой черты
params: {
location_id: {
value: null,
squash: true
}
}