如何覆盖现有的骨干模型方法,保持其他方法相同

How to override existing Backbone Model method keeping other methods same

本文关键字:方法 模型 其他 何覆盖 覆盖      更新时间:2023-09-26

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

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

所以我想重写模型的saveAndallow方法。我怎样才能做到这一点而不影响该模型的其他方法

你为什么不创建一个新的模型来扩展你的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