我有一个基本的订单输入表单,其中包含结算和送货地址字段(均基于'地址'型号)。我有一个复选框,上面写着"结算地址与发货相同?"如果选中,则会将结算地址数据复制到送货地址。
我该怎么做?这对我来说不太明显。我认为当" next"单击按钮,如果" billShipSame" value = true然后复制数据。但是你如何实际复制数据呢?或者我只是接近这个问题错了?
模型如下:
export default DS.Model.extend(Validations, {
type: attr('string'),
firstName: attr('string'),
lastName: attr('string'),
address1: attr('string'),
address2: attr('string'),
city: attr('string'),
state: attr('string'),
country: attr('string'),
postalCode: attr('string'),
phone: attr('string')
});
以下是我如何使用它们的精简版本:
billingAddress: computed(function() {
return this.get('store').createRecord('address', { type: 'billing'});
}),
shippingAddress: computed(function() {
return this.get('store').createRecord('address', { type: 'shipping'});
}),
orderModel: computed(function() {
return this.get('store').createRecord('order', {
billingAddress: this.get('billingAddress'),
shippingAddress: this.get('shippingAddress')
});
}),
答案 0 :(得分:1)
我建议您“与结算相同”单选按钮触发将数据复制到相应字段的操作。这样,当有人点击下一步时,您的数据模型状况良好,您的提交操作可以专注于保存
编辑:
这两种模型之间复制值的最简单方法如下:
shippingAddress.setProperties(billingAddress.getProperties('firstName','lastName')); // etc
相信应该处理你所追求的......