【问题标题】:Backbone Model: Is there a way to differentiate the inital save event from subsequent ones?骨干模型:有没有办法区分初始保存事件和后续保存事件?
【发布时间】:2011-10-14 01:05:32
【问题描述】:

问题的标题几乎概括了它,我希望我的观点对模型实例的初始保存与任何未来保存做出不同的响应。现在我在保存之前抓取模型的isNew attr,然后触发自定义事件,但我想知道是否有内置的东西?

【问题讨论】:

  • 唯一内置的请求格式是不同的——它是第一次保存的 POST 和其他人的 PUT。尝试覆盖 backbone.sync 或“查看源代码”以获得一些想法
  • 谢谢你的作品。有没有办法覆盖 Backbone.sync 并以某种方式保存它以前的功能(除了完全复制代码并添加你自己的东西)。有点像在 Java 中对超类调用 super 的时候?
  • 在别处询问并解决了:stackoverflow.com/questions/7770082/…

标签: javascript backbone.js underscore.js backbone-events


【解决方案1】:

检查model.isNew() 是判断初始保存是否已经发生的内置方法。如果检查isNew 对您有用,请继续这样做。

初始保存应该为对象发出一个 ID,因此您可以将一个函数绑定到“change:id”,它会在初始保存成功后执行。或者你可以为create()的“成功”和“错误”回调添加逻辑。

【讨论】:

    【解决方案2】:

    this answer 的帮助下,我想出了以下解决方案:

    var originalSync = Backbone.sync;
    Backbone.sync = function(method, model, options) {
        console.log(method);
        originalSync.apply(Backbone, [method, model, options]);
    };
    

    我现在可以检查正在调用的 method

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-23
      • 2012-04-24
      • 2013-01-22
      • 1970-01-01
      • 2012-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多