Ember: разрешение объектов вложенных ресурсов
Я недавно начал использовать Ember.js с Ember-CLI, и я очень взволнован. Но есть некоторые вещи, которые мне не понятны.
Вот мой роутер:
this.resource("authenticated", { path: '/' }, function() {
this.resource("contacts", function() {
this.resource("contact", { path: ':id' });
});
this.resource("chats", function() {
this.resource("chat", { path: ':id' });
});
this.resource("settings", function() {
this.resource("setting", { path: ':id' });
});
});
Вопрос в том, почему после 2-го вложения "resolver" начинает находить объекты вне ресурса "authenticated"?
Например
my-app/pods/chats/index/view
Но ожидаемое my-app/pods/authenticated/chats/index/view
Почему пропущена проверка подлинности?
1 ответ
Ваш аутентифицированный маршрут не применяется в URL, потому что вы назначили его URL для корня: { path: '/'}
,
Вы должны либо изменить путь на "authenticated", либо удалить его все вместе:
this.resource("authenticated", function() {
...
});
Однако теперь проверка подлинности выполняется только тогда, когда пользователь переходит к my-app/pods/authenticated
, Если вы все еще хотите сделать аутентифицированным индекс, вы должны добавить префикс к вложенным ресурсам:
this.resource("authenticated", { path: '/' }, function() {
this.resource("contacts", { path: '/authenticated/contacts' }, function() {
...
});
this.resource("chats", , { path: '/authenticated/chats' }, function() {
...
});
...
});
Я надеюсь, что это помогло вам.