Код говорит тысячу слов; есть ли способ сделать то, что я пытаюсь здесь?Зацикливание через хэш-символ JS RSVP Ember?
Пользователи "Root" Route
Загрузка общих выбираемые опции на верхнем уровне для использования в суб-маршрутов, таких как index
, show
, edit
, create
, и т.д ...
-- /pods/users/route.js
model() {
return RSVP.hash({
userCategories: this.store.findAll('user-category'),
userSources: this.store.findAll('user-source'),
userGroups: this.store.findAll('user-group'),
});
},
Пользователи «Создать» Маршрут
С подпунктом /create
Я хочу перебрать уже загруженных вариантов выше и загружать их в шаблон, как именованные переменные:
-- /pods/users/create/route.js
setupController(controller, model) {
let rootModel = this.modelFor('users');
rootModel.forEach(function (model, name) {
set(controller, name, model);
}); <-- THIS IS THE BROKEN PART...
...
}
Проблему
На петле .forEach
я получаю Error while processing route: rootModel.forEach is not a function TypeError: rootModel.forEach is not a function
ли есть «Углеродный путь», проходящий через эту корневую модель, или я буду застревать с ее загрузкой в пределах верхней переменной уровня, т. е.
-- /pods/users/create/route.js
setupController(controller, model) {
let rootModel = this.modelFor('users');
set(controller, 'rootModel', rootModel);
...
}
Зачем вам нужно проходить через него? Теперь, когда вы определили свой крючок модели, вы можете получить доступ к данным в шаблоне, например: '{{#each model.userCategories as | category |}}' – Igor
Я предполагаю, что это больше предпочтение читаемости, я бы предпочел для доступа к 'userCategories' без ведущей модели. Логически я знаю, что это не имеет никакого значения ни в одном случае, но для меня '{{#each userCategories as | userCategory |}}' просто кажется более чистым. – SamSebastian