Javascript 使用其子模型初始化主干模型
我有以下骨干模型Javascript 使用其子模型初始化主干模型,javascript,backbone.js,Javascript,Backbone.js,我有以下骨干模型 var Parent = Backbone.Model.extend({ defaults: { id: '', name: '' } }); var Child = Parent.extend({ defaults: { color: '', shape: '', isValid: false }); 现在我有了以下对象“Child”模型 我需要使用此“子”模型对象创建
var Parent = Backbone.Model.extend({
defaults: {
id: '',
name: ''
}
});
var Child = Parent.extend({
defaults: {
color: '',
shape: '',
isValid: false
});
现在我有了以下对象“Child”模型
我需要使用此“子”模型对象创建一个“父”模型对象,为此我执行了以下操作:
var json = convertToJSON(child);
var parent = new Parent(json);
但这里“子”模型的属性也被填充到“父”模型的父对象中。有没有办法在这个新对象中只填充那些适用于“父”模型的属性?我不想使用“删除”来删除不适用的属性。您可以在子模型上使用
pick
方法来仅获取所需的属性
var json = child.pick('color', 'shape');
var parent = new Parent(json);
它将返回一个可以传递给父模型的对象。
你可以阅读更多关于它的内容
或者,您可以使用,但您将需要它的transpiler
const {color, shape} = child;
const parent = new Parent({color, shape});
Parent.defaults
的键来确定您需要什么var parent = new Parent(
child.pick(_.keys(Parent.prototype.defaults))
);
还有一个演示
var parent = new Parent(
child.pick(_.keys(Parent.prototype.defaults))
);