Ember.js 去盎司搜索滤波器
我试图取消我的搜索函数,但我得到一个错误。 我在阵列控制器中有一个余烬搜索输入:Ember.js 去盎司搜索滤波器,ember.js,Ember.js,我试图取消我的搜索函数,但我得到一个错误。 我在阵列控制器中有一个余烬搜索输入: App.PostsController = Ember.ArrayController.extend({ watchSearch: function() { Em.run.debounce(this, this.itemsa, 400); }.observes("search"), itemsa: function() { var searched = this.g
App.PostsController = Ember.ArrayController.extend({
watchSearch: function() {
Em.run.debounce(this, this.itemsa, 400);
}.observes("search"),
itemsa: function() {
var searched = this.get("search") ? this.get("searchedItems") : this;
return searched;
}.property("searchedItems"),
searchedItems: function() {
var search = this.get('search').toLowerCase();
return this.filter(function(item) {
return item.get('title').toLowerCase().indexOf(search) != -1;
})
}.property('search', 'title')
});
在我的模板中,我有:
<script type="text/x-handlebars" id="posts">
{{#each itemsa}}
{{title}}
{{/each}}
</script>
{{{#每个项目a}}
{{title}}
{{/每个}}
反Bounce应该调用函数,而不是计算属性
App.PostsController = Ember.ArrayController.extend({
watchSearch: function() {
Em.run.debounce(this, this.runSearch, 400);
}.observes("search"),
runSearch: function(){
this.set('nextSearch', this.get('search'));
},
itemsa: function() {
var searched = this.get("search") ? this.get("searchedItems") : this;
return searched;
}.property("searchedItems"),
searchedItems: function() {
var search = this.get('search').toLowerCase();
return this.filter(function(item) {
return item.get('title').toLowerCase().indexOf(search) != -1;
})
}.property('nextSearch', 'title')
});
例子
- 无去盎司:
- 带去盎司:
this.get('itemsa')
,可以缓存和观察,等等,但仅仅调用它在现实世界中没有实际意义。老实说,我们很幸运,我上个月在一次余烬聚会上写了这两个例子