Я не уверен, правильно ли я это делаю, любые советы будут оценены.
У меня есть селектор ресторанов, с которого пользователь может выбрать ресторан. Затем все остальные дочерние состояния загружают контент, специфичный для выбранного ресторана. Но мне нужно, чтобы выбранное по умолчанию дочернее состояние включало в себя ресторан, который будет либо выбран на основе ближайшего местоположения пользователей, либо в данных cookie, если они ранее были выбраны. Но, я не уверен, как я могу перенаправить на дочернее состояние по умолчанию, не зная идентификатор ресторана уже?
Ниже приведена своя версия моего кода ниже.
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'
})
Рисунок ниже, чтобы проиллюстрировать, что происходит на лицевой стороне: www.merrywidowswine.com/ss.jpg