ember: 复制模型数据到另一个
ember: copy model data to another
我有一个基本的订单输入表单,其中包含账单和送货地址字段(均基于 'address' 模型)。我有一个显示 "Billing address same as shipping?" 的复选框,选中后会将账单地址数据复制到送货地址。
我该怎么做?这对我来说不是很明显。我在想当 "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')
});
}),
我建议您 "same as billing" 单选按钮触发将数据复制到适当字段的操作。这样,当有人点击下一步时,您的数据模型就处于良好状态并且您的提交操作可以专注于保存
编辑:
在两个模型之间复制值的最简单方法如下:
shippingAddress.setProperties(billingAddress.getProperties('firstName','lastName')); // etc
相信应该可以处理您想要的...
我有一个基本的订单输入表单,其中包含账单和送货地址字段(均基于 'address' 模型)。我有一个显示 "Billing address same as shipping?" 的复选框,选中后会将账单地址数据复制到送货地址。
我该怎么做?这对我来说不是很明显。我在想当 "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')
});
}),
我建议您 "same as billing" 单选按钮触发将数据复制到适当字段的操作。这样,当有人点击下一步时,您的数据模型就处于良好状态并且您的提交操作可以专注于保存
编辑:
在两个模型之间复制值的最简单方法如下:
shippingAddress.setProperties(billingAddress.getProperties('firstName','lastName')); // etc
相信应该可以处理您想要的...