{{#each}}
モデルのサブセットである RecordArray をコントローラー内に生成していますが、htmlでハンドルバーを使用して表示する方法がわかりません。
以下の回答は、同じページの同じコントローラーで ember.js 2/複数のモデルを表示する方法も示している場合があります。
{{#each}}
モデルのサブセットである RecordArray をコントローラー内に生成していますが、htmlでハンドルバーを使用して表示する方法がわかりません。
以下の回答は、同じページの同じコントローラーで ember.js 2/複数のモデルを表示する方法も示している場合があります。
つまり、ItemsController にアイテムのリストがあるとしますが、テンプレートに特別なアイテムをリストしたいだけです。次のようにアイテムをフィルタリングする計算プロパティを追加します。
App.ItemsController = Ember.ArrayController.extend({
specialItems: function() {
var items = this.get('content');
return items.filterProperty('isSpecial')
}.property('content.@each.isSpecial');
});
次に、テンプレートでそのプロパティを参照します。
{{#each item in specialItems}}
{{item.title}}
...
{{/each}}
最初に、RecordArray を含むコントローラーで変数を設定する必要があります。each
次に、その変数 を呼び出すことができます。
App.YourController = Ember.ArrayController.extend({
...
doSearch: function(){
var theRecordArray = App.Model.find({theAttribute: blah});
this.set('variableOfYourChoice', theRecordArray);
}
});
そしてhtmlで:
{{#each variableOfYourChoice}}
<li>{{theAttribute}}</li>
{{/each}}
RecordArray を検索結果として表示するこの jsbinで実行されていることを確認してください。