クエリに関するEmber Dataのドキュメントによると:
find() にハッシュを渡すことで、サーバーにクエリを実行できます。
ハッシュの内容は Ember Data に対して不透明です。それを解釈してレコードのリストを返すのはサーバー次第です。
クライアント側のフィルタリングが必要な場合は、 のfilter()
方法を使用できますEmber.Array
。この例では、元の配列の内容のサブセットを含む計算されたプロパティを表示します。この計算された配列は、ボックスに入力されたものと一致するアイテムのみを表示します。
JSBin の例
Javascript:
App = Ember.Application.create({});
App.IndexRoute = Ember.Route.extend({
setupController: function(controller) {
controller.set('content', [
Ember.Object.create({name: 'Joe'}),
Ember.Object.create({name: 'Frank'}),
Ember.Object.create({name: 'John'}),
Ember.Object.create({name: 'Billy'}),
Ember.Object.create({name: 'John'}),
Ember.Object.create({name: 'Johnny'})
]);
}
});
App.IndexController = Ember.ArrayController.extend({
content: [],
filter: "",
filteredContent: function() {
var filter = this.get('filter');
return this.get('content').filter(function(item, index, enumerable){
return item.get('name').toLowerCase().match(filter.toLowerCase());
});
}.property('filter', 'content.@each')
});
ハンドルバー:
<script type="text/x-handlebars" data-template-name="index">
<h2>Index Content:</h2>
<span>Filter: </span>{{view Ember.TextField valueBinding=filter}}
<ul>
{{#each item in filteredContent}}
<li>{{item.name}}</li>
{{/each}}
</ul>
</script>