gpt4 book ai didi

ember.js - 在 Ember Data 中,如何通过 id 设置关系字段而不向服务器发送 null?

转载 作者:行者123 更新时间:2023-12-03 21:38:26 24 4
gpt4 key购买 nike

我有一个订单模型

export default DS.Model.extend({
account: DS.belongsTo('account', {async: true}),
address: DS.belongsTo('address', {async: true}),
orderItems: DS.hasMany('orderItem', {async: true}),
orderStatus: DS.belongsTo('orderStatus', {async: true}),
specialInstructions: DS.attr('string'),
creationDate: DS.attr('date')
});

这有一个订单状态,它有模型:
export default DS.Model.extend({
value: DS.attr('string'),
orders: DS.hasMany('order', {async: true})
});

在订单/创建 route ,我使用 model获取帐户然后 afterModel立即在数据库中创建一个新订单。我想像这样在 afterModel 中创建它:
var order = this.store.createRecord('order', {
account: model,
orderStatus: 1
});

return Ember.RSVP.hash({
order: order.save().then(function() {
self.set('order', order);
}),
products: this.store.findAll('product').then(function(result) {
self.set('products', result);
})
});

但是查看到服务器 Ember 的 POST 正在向服务器发送 orderStatus: null 。

除此之外,我想稍后在 saveOrder 操作中(在 Controller 上)再次设置它。
order.set('orderStatus', 3);
order.save().then(function() {
self.transitionToRoute('member.orders', order.get('account'));
});

我可以这样做吗?我还有一些组件想要发送操作来保存对象(面向 Ember 2.0),其中设置 id 是理想的,因为我不想访问组件中的商店等。

最佳答案

您可以使用 store.getReference('orderStatus', 3)获取对 OrderStatus 的引用然后像使用模型一样设置它:

const orderStatus = store.getReference('orderStatus', 3)
order.set('orderStatus', orderStatus)
我知道这是一个老问题,但由于我偶然发现它寻找答案,我认为其他人也会这样做!

关于ember.js - 在 Ember Data 中,如何通过 id 设置关系字段而不向服务器发送 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31409925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com