我有一个订单模型
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})
});
在order/create route中,我使用model
获取账户,然后使用afterModel
在db中直接创建一个新订单。
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);
})
});
但看着POST向服务器Ember发送的是orderStatus:服务器的空值。
除此之外,我想稍后在saveOrder操作(在控制器上)中再次设置它。
order.set('orderStatus', 3);
order.save().then(function() {
self.transitionToRoute('member.orders', order.get('account'));
});
我可以这样做吗?我也有组件想要发送动作来保存对象(看Ember 2.0),在那里设置id是理想的,因为我不想访问组件中的存储等。
1条答案
按热度按时间dohp0rv51#
可以使用
store.getReference('orderStatus', 3)
获取对OrderStatus
的引用,然后像处理模型一样对其进行设置:我知道这是一个古老的问题,但由于我偶然发现它寻找答案,我想别人也会这样做!