我有一个包含10个属性的主干模型,现在我需要在我的另一个新创建的模型中复制/克隆5个属性(在这10个属性中)。我可以通过单独获取/设置来做这件事,但我想知道,有没有更好/更简单的方法来做到这一点?
示例: modelfirst {fld1:value1,fld2:value2 ....}
new modelsecond()。set({fld1:modelfirst.attributes.fld1 ....})
我想这样做:
new modelsecond()。set(modelfirst.get('fld1','fld2')});
有人有任何想法吗?
答案 0 :(得分:2)
使用Underscore的方法(因为Backbone需要它,你可以访问它):
new modelsecond(_.pick(_.clone(modelfirst.attributes), 'fld1', 'fld2', ...))
要选择所有小写属性,您应该可以
new modelsecond(_.pick(
_.clone(modelfirst.attributes),
_.select(_.keys(modelfirst.attributes),
function(attr){ return /^[a-z]+$/.test(attr) }))