Ember(ember-data) モデルにプロパティを配置しようとしています。これは、汎用テーブル コンポーネントに含めるプロパティの単なる配列です。最初に、これをモデルに追加しました:
tableColumns: function() {
return ['age', 'gender', 'whatever'];
}.property()
しかし今では、これらのプロパティを簡単に反復処理し、各モデル インスタンスの値を呼び出すために、子コンポーネントのフープを飛び越えていることに気付きました。
モデルごとに列が変わるので、これは良い解決策だと思いました。より良い方法はありますか?
特に、行 (モデル インスタンス) ごとに、以下の架空のスニペットのような不合理なことを言いたい場合に行き詰まります。
{{#each col in tableColumns}}
<td>{{model.col}}</td>
{{/each}}
私はコントローラーを使わずに、コンポーネントを一般的なものにしようとしています。
編集:
現在、行コンポーネントでこれを行ってから、hbs の「列」を反復処理しています。しかし、それは正しくないと感じており、いくつかの問題を引き起こすと思われる非同期部分(一部の列は外部呼び出しを行う必要があります)に到達しているので、より良い方法を見つけたいと思いました。
this.get('model').tableColumns().forEach(function(cell){
cols.push(that.get('model._data.' + cell));
});