【问题标题】:How to override existing Backbone Model method keeping other methods same如何覆盖现有的主干模型方法保持其他方法相同
【发布时间】:2016-10-14 11:33:24
【问题描述】:

我有一个骨干模型,我无权编辑。所以我想修改它的方法,这样其他方法的功能就不会影响了。

ShoppingDetail = Backbone.Model.extend({
   className: 'CartID',
   fetch: function() {},
   checkForChanges: function() {},
   newCoupon: function() {},
   saveAndallow: function() {}
 });

 shoppingDetailModel = new ShoppingDetail();
 shoppingCartView = new ShoppingCartView({
   model: shoppingDetailModel
 });

所以我想覆盖模型的 saveAndallow 方法。如何在不影响该模型的其他方法的情况下做到这一点

【问题讨论】:

  • 以下答案对您有用吗?

标签: javascript jquery model-view-controller backbone.js


【解决方案1】:

您为什么不创建一个新模型来扩展您的 ShoppingDetail 模型?

ShoppingDetail = Backbone.Model.extend({ 
    className: 'CartID', 
    fetch: function() {},
    checkForChanges : function() {},
    newCoupon: function(){},
    saveAndallow: function(){}
});

NewShoppingDetail = ShoppingDetail.extend({
    saveAndallow: function(){};
});

shoppingDetailModel = new NewShoppingDetail();
shoppingCartView =  new ShoppingCartView({
        model : shoppingDetailModel
});

所以现在,当你调用任何方法时,它会首先检查它是否在NewShoppingDetail中可用,如果不可用,则它会检查ShoppingDetail。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多