Ember.js 在绑定文本输入以计算Ember中的筛选列表时键入LAGY
我有一个Ember应用程序,其中我有一个绑定到属性Ember.js 在绑定文本输入以计算Ember中的筛选列表时键入LAGY,ember.js,Ember.js,我有一个Ember应用程序,其中我有一个绑定到属性query的输入。有一个计算属性filteredRecords,它使用query过滤模型来构建一个记录数组以供显示。该模型包含大量记录,因此在过滤过程中存在一定的滞后。在搜索栏中键入内容也很慢。列表的重新呈现似乎妨碍了文本被呈现到搜索栏中 computed属性是用实现的。以下是我的控制器属性,computedFilterByQuery的实现是: 有没有一种方法可以赋予搜索栏“优先级”,这样即使列表需要一两秒钟才能更新,输入搜索栏也总是很顺畅?您能
query
的输入。有一个计算属性filteredRecords
,它使用query
过滤模型
来构建一个记录数组以供显示。该模型包含大量记录,因此在过滤过程中存在一定的滞后。在搜索栏中键入内容也很慢。列表的重新呈现似乎妨碍了文本被呈现到搜索栏中
computed属性是用实现的。以下是我的控制器属性,computedFilterByQuery
的实现是:
有没有一种方法可以赋予搜索栏“优先级”,这样即使列表需要一两秒钟才能更新,输入搜索栏也总是很顺畅?您能为
filteredRecords
发布您的计算属性代码吗?出于好奇,大概有多少条记录?@rog更新了我的帖子,大约有800条记录。你是否尝试过在你的过滤器中添加一个去Bounce,这样它就不会在每次更改查询时立即进行过滤?我注意到了一个类似的问题,并成功地使用了这种方法。@Dhaulagiri,谢谢,我还没有尝试过——我不熟悉去Bouncing,但我查了一下,虽然不太理想(我觉得函数调用实际上不需要延迟),但它看起来应该可以工作。如果您添加一个答案,说明如何修改我发布的代码,以消除其影响,我将接受您的答案。
// in controller...
mArray: function() {
return this.get('model').toArray();
}.property('model'),
filteredRecords: computedFilterByQuery(
'mArray', 'key', 'query'
).readOnly(),