Yaptığım yöntemin doğru olup olmadığından emin değilim, herhangi bir öneri takdir edilecektir.Belirli bir stateParam boşsa durumu bildirme
Kullanıcının bir restoranı seçebileceği bir Restoran Seçici var. Daha sonra diğer tüm çocuk devletleri seçilen restorana özel içerik yükler. Ancak, bir restoran da dahil olmak üzere, varsayılan olarak seçilen bir çocuk durumunun olması gerekir. Bunlar, en yakın konumdaki kullanıcılara veya daha önce bir tane seçtiyseniz çerez verilerine dayanarak seçilir. Ancak, restoran kimliğini zaten bilmeden varsayılan olarak bir çocuk durumuna nasıl yönlendirebileceğimi bilmiyorum?
Aşağıdaki şekilde kodumun bastardised sürümü gösteriliyor.
app.config(function ($stateProvider, $urlRouterProvider) {
$urlRouterProvider.otherwise("/restaurant/[some id based on cookie info]/our-food"); // if no id is set, then I want to get it from a cookie, but then how do i do the redirect?
$stateProvider
.state('restaurant', {
url: '/restaurant/:restaurantId',
template: "<ui-view/>",
controller: function($state, $stateParams, Data, RestaurantService, $cookieStore) {
if(typeof $stateParams.restaurantId !== 'undefined') {
// get the restaurantID from the cookie
}
}
})
.state('restaurant.our-food', {
url: '/our-food',
templateUrl: function($stateParams) {
return 'templates/food-food.html?restaurantId=' + $stateParams.restaurantId;
},
controller: 'SubNavCtrl'
})
.state('restaurant.glutenfree-vegetarian', {
url: '/glutenfree-vegetarian',
templateUrl: function($stateParams) {
return 'templates/food-vegetarian.html?restaurantId=' + $stateParams.restaurantId;
},
controller: 'SubNavCtrl'
})
aşağıda bir görüntü ön ucunda neler olduğunu göstermek için: www.merrywidowswine.com/ss.jpg
Teşekkürler, bu bana doğru yönde işaret ediyor, ben bir oyuna sahip olacağım ve çalışıp çalışamayacağımı göreceğim. Şerefe! –
# 1 çözümünüzle karşılaştığınız sorun, tüm çözümleme özelliklerinin "onEnter" gerçekleştirilmeden önce çözülmesidir. Github ile ilgili bir sorun başlattım: https://github.com/angular-ui/ui-router/issues/1102. Yeniden yönlendirmeden önce çözümlenmiş paramların çözülmesini istemiyorsanız (örneğin, rota belirli bir parametre gerektiriyorsa) kısa devre için gizli bir kanca olup olmadığından emin değilim. – Beez
'$ state.transitionTo' yerine, burada belirtildiği gibi' $ state.go' kullanmak daha iyi olurdu (https://github.com/angular-ui/ui-router/wiki/Quick-Reference# durum-1) – Daniele