gpt4 book ai didi

ember.js - 有没有办法消除观察者的抖动

转载 作者:行者123 更新时间:2023-12-03 21:31:18 25 4
gpt4 key购买 nike

我在 Controller 中有一个观察者,可以在进行更改时保存对象。问题是它发生得太频繁了。

changed: ( ->
#save code goes here
).observes("description")

我在想类似 http://underscorejs.org/#debounce 的事情需要吗?

此外,当属性通过键输入更改时,似乎将对象保存两次,然后在从返回的服务器值设置属性时再次保存。

任何帮助都会很棒,我正试图将头环绕在 ember 上。

最佳答案

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

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