Я следующий маршрут определяется:Переход на другой маршрут, когда верхний ресурс доступен, но не тогда, когда вложенная маршрут доступен
SettingsApp.Router.map(function() {
....
this.resource('profile', function() {
this.route('user'),
this.route('company')
});
});
SettingsApp.ProfileRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('profile.user');
},
model: function() {
return Ember.A([
Ember.Object.create({title:"User", link:"#/profile/user"}),
Ember.Object.create({title:"Company", link:"#/profile/company"})
]);
}
})
#/profile
перенаправляет #/profile/user
, как и ожидалось, но проблема что #/profile/company
делает также redirect to #/profile/user
. Кажется, перенаправление ресурсов выполняется каждый раз, когда я обращаюсь к любому URL-адресу ниже этого ресурса.
Почему это? Как я могу перенаправить только высший уровень #/profile
?
Спасибо, это то, что я искал! – dangonfast
Но один вопрос: какая разница между «ProfileIndexRoute» и «ProfileRoute». Вы упомянули, что 'ProfileIndexRoute' запускается при доступе' #/profile'. Когда срабатывает «ProfileRoute»? Когда у меня не было 'ProfileIndexRoute', оно было запущено на' #/profile' тоже. – dangonfast
@ gonvaled относительно вопроса о различии между 'PostsRoute' и' PostsIndexRoute' см. Здесь: http: //emberjs.com/guides/routing/defining-your-routes/. И последний намек, если вы жестко привязываете свои ссылки к маршрутам, имейте в виду, что если ваши изменения структуры маршрута, вы должны найти все вхождения ваших ссылок и переписать их тоже – intuitivepixel