代码说千言万语;有没有办法做我在这里尝试的事情?
用户“根”路线
在顶级加载常见的可选选项,以便在子路由中使用,例如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
是否存在循环通过该根模型的“Ember Way”,或者我将被困在顶级变量中加载它,即;
-- /pods/users/create/route.js
setupController(controller, model) {
let rootModel = this.modelFor('users');
set(controller, 'rootModel', rootModel);
...
}
答案 0 :(得分:4)
Object.keys(rootModel).forEach(function(name) {
var model = rootModel[keyName];
set(controller, name, model);
// ...
});
或者您可能只需要RSVP.hash
,但RSVP.all
返回一个使用数组解析的promise包含已解析的值?