我有一个客户模型,其中包含以下几个详细信息
customerModel.FIRST_NAME.get('value'); // this will give some name, works fine!
现在,如果我像下面这样克隆模型
var cloneModel = _.cloneDeep(customerModel);
cloneModel.FIRST_NAME.get('value');
// This gives Uncaught TypeError: cloneModel.FIRST_NAME.get is not a function
请告诉我我在这里错过了什么?为什么 Backbone 获取/设置不工作后克隆?
先谢谢你
1条答案
按热度按时间hfyxw5xn1#
Backbone.js get/set在lodash .cloneDeep之后不再起作用,因为.cloneDeep复制了对象的属性(即模型的属性),而不是它的原型。请参见下面的示例:
您要使用的是Backbone.Model的克隆函数。
在任何情况下都应该这样做,因为即使_.cloneDeep按预期工作,您也会有两个具有相同cid的模型示例,这可能会导致事件发生问题。