0
コードは1000語を話す。私はここで何をしようとしているのですか?Ember JSのRSVPハッシュによるループ?
ユーザー副経路など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'),
});
},
ユーザー "作成"ルート
のサブルート私はすでにロードされたオプション上記と名付けられた変数としてテンプレートにロードをループにしたい:
-- /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...
...
}
問題
私はError while processing route: rootModel.forEach is not a function TypeError: rootModel.forEach is not a function
です取得しています.forEach
ループでそのルートモデルをループする "Ember Way"がありますか、それともトップレベルの変数の中でロードすることに悩まされますか?
-- /pods/users/create/route.js
setupController(controller, model) {
let rootModel = this.modelFor('users');
set(controller, 'rootModel', rootModel);
...
}
なぜそれをループする必要がありますか?モデルフックを定義した方法で、テンプレートのデータにアクセスすることができます。例えば、 '{{#each model.userCategories as | category |}}' – Igor
私はそれが読みやすさの好みだと思います。先頭の 'model'を使わずに' userCategories'にアクセスしてください。論理的に私はそれが本当にどちらの方法でも問題ではないことを知っていますが、{{#each userCategories as | userCategory |}} 'はちょっときれいだと思います。 – SamSebastian