gpt4 book ai didi

ember.js - 如何使用 Ember.JS 中的匹配来查找模型中的对象?

转载 作者:行者123 更新时间:2023-12-02 22:12:36 25 4
gpt4 key购买 nike

我刚开始使用 Ember.JS,但我想我给自己提出了一个很好的问题。我的左侧有一个工作项目列表,右侧有一个搜索字段。因此,在 KeyUp 事件中,我将文本字段的值发送到模型,以查找匹配项,如下所示:

this.controllerFor('productImages').set('model', App.ProductImage.find({ean_codes: value}));

我的问题是,是否可以使用某种正则表达式来查找匹配项,例如如果我有 ID 1234,即使我只搜索“1”,它也会找到它?

最佳答案

根据Ember Data docs关于查询:

You can query the server by passing a hash to find().

The contents of the hash is opaque to Ember Data; it is up to your server to interpret it and return a list of records.

如果您想要客户端过滤,可以使用 Ember.Arrayfilter() 方法。此示例显示一个计算属性,其中包含原始数组内容的子集。此计算数组仅显示与框中输入的内容相匹配的项目。

JSBin Example

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')

});

Handlebars :

<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>

关于ember.js - 如何使用 Ember.JS 中的匹配来查找模型中的对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15418866/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com