作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在 Controller 中有一个观察者,可以在进行更改时保存对象。问题是它发生得太频繁了。
changed: ( ->
#save code goes here
).observes("description")
最佳答案
从 Ember 1.0.0 开始,您可以通过将 debounce 调用包装在另一个观察的函数中,从而在任何 View 或 Object 中获得一个 debounce 的观察者。 Ember.run.debounce
不返回函数,而是将函数句柄添加到字典中。每次使用该函数句柄调用 Ember.run.debounce 时,它都会检查字典以查看上次调用该函数的时间并按预期对其进行去抖动。
var MyView = Ember.View.extend({
calledRarely: function() {
console.log("This will log rarely.");
},
calledOften: function() {
console.log("This will log often.");
Ember.run.debounce(this, this.calledRarely, 1000);
}.observes("propertyThatChangesOften")
});
this.calledOften
完全没有去抖动
Ember.run.debounce
实际上会在属性更改时被调用。它不会打电话
this.calledRarely
直到我们的去抖动超时完成。
关于ember.js - 有没有办法消除观察者的抖动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12487227/
我是一名优秀的程序员,十分优秀!