【问题标题】:Avoiding scope pitfalls when breaking up Backbone.js set method?打破 Backbone.js 设置方法时避免范围陷阱?
【发布时间】:2011-12-02 05:06:14
【问题描述】:

我将 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
}

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

【问题讨论】:

  • 我很难准确理解您想要做什么。您能否向我们展示一些实际代码来说明您遇到的问题?
  • 我不明白当模型的属性改变时你会加载什么。请使用更多详细信息更新问题。看来您可能使用不正确。

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


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2015-04-08
    • 1970-01-01
    • 2010-11-16
    • 1970-01-01
    • 2012-03-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-17
    相关资源
    最近更新 更多