有没有办法去除观察者的辩解

Aar*_*oir 14 ember.js

我在控制器中有一个观察者,在进行更改时保存对象.问题是它经常被哄骗.

changed: ( ->
  #save code goes here 
).observes("description")
Run Code Online (Sandbox Code Playgroud)

我在想像http://underscorejs.org/#debounce这样的东西需要吗?

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

任何帮助都会很棒我试图把我的头包裹在余烬之下.

Fel*_*ung 22

从Ember 1.0.0开始,你可以通过将去抖动调用包含在另一个观察到的函数中,在任何视图或对象中获得去抖动的观察者.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")
});
Run Code Online (Sandbox Code Playgroud)

在这里,this.calledOften根本没有去抖动,因此Ember.run.debounce实际上会随着属性的改变而被调用.this.calledRarely在我们的去抖动超时完成之前,它不会调用.