在分解Backbone.js设置方法时避免范围陷阱?

时间:2011-10-06 12:15:01

标签: javascript model-view-controller callback closures backbone.js

我正在将Backbone.js用于MVC。

在我的Model.set()方法中,我想在触发更改事件之前等待加载数据。

//Pseudo
set() {
   create changed attributes ... then:
   dataHelper.load(changedAttributes, stabilizeModel)
}

stabilizeModel() {
   now set changedAttributes on model ...
   ... and trigger change events
}

stableizeModel方法的正确方法是:
1)可以访问changedAttributes
2)具有正确的范围(被称为“dataHelper”的回调)

1 个答案:

答案 0 :(得分:0)

我认为您不应该尝试覆盖model.set()。相反,你应该利用它:

function load() {
    var attr_to_load = { ... }; 
    var attr = dataHelper.load(attr_to_load );
    this.set(attr);
}

我需要更多信息才能为您提供更好的信息。