如何覆盖现有的 Backbone 模型方法,使其他方法保持不变
How to override existing Backbone Model method keeping other methods same
我有一个 backbone 模型,我无法访问它 edit.So 我想修改它的方法,这样其他方法的功能就不会受到影响。
ShoppingDetail = Backbone.Model.extend({
className: 'CartID',
fetch: function() {},
checkForChanges: function() {},
newCoupon: function() {},
saveAndallow: function() {}
});
shoppingDetailModel = new ShoppingDetail();
shoppingCartView = new ShoppingCartView({
model: shoppingDetailModel
});
所以我想覆盖 model.How 的 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。
我有一个 backbone 模型,我无法访问它 edit.So 我想修改它的方法,这样其他方法的功能就不会受到影响。
ShoppingDetail = Backbone.Model.extend({
className: 'CartID',
fetch: function() {},
checkForChanges: function() {},
newCoupon: function() {},
saveAndallow: function() {}
});
shoppingDetailModel = new ShoppingDetail();
shoppingCartView = new ShoppingCartView({
model: shoppingDetailModel
});
所以我想覆盖 model.How 的 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。