在Ember应用程序中,假设您有观察者或观察阵列的属性,如下所示:
topContributor: (function() {
// ... loop over articles (hence slow) ...
}).property('articles.@each.author')
Run Code Online (Sandbox Code Playgroud)
articles例如,通过ember-data 更新数组会反复触发属性函数articles.length一次.
有没有办法在所有更改完成并刷新runloop后将更新折叠为一个延迟更新?
Jo *_*iss 10
感谢@wagenet和@krisselden提供以下指示:
目前,虽然延迟(延迟)绑定,但观察者和扩展计算属性会立即触发.将来,它们也可能会被推迟.
在此期间,您可以使用Ember.run.once作为解决方案来安排延迟函数调用,该调用仅运行一次.我想,计算属性可以很容易地变成观察者,以遵循相同的模式.这是一个例子:
updateTopContributor: function() {
// ... loop over articles (hence slow) ...
this.set('topContributor', ...);
},
_updateTopContributorObserver: (function() {
Ember.run.once(this, 'updateTopContributor');
}).observes('articles.@each.author')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1272 次 |
| 最近记录: |