在没有原始模型的情况下在 EmberJS 中设置新关系
Setting a new relation in EmberJS without original model
所以我通常有一个模型 created/loaded:
let contact = self.get('store').createRecord('contact');
然后我得到地址,这是模型上的 BelongsTo 关系:
let address = contact.get('address');
返回的 address
变量是一个 Proxy 对象,promise 将其解析为相关模型或 null。
问题是如何创建一个新的地址模型并将其分配给原始联系人对象,但只有地址代理对象?
如果您想创建新的地址记录(而不是模型)并将其分配给新创建的联系人,您可以执行以下操作:
const store = this.get('store');
const contact = store.createRecord(
'contact',
{
name: 'Jack',
address: store.createRecord('address')
}
);
或者如果您已经有一个地址代理并且您只想创建一个新的地址代理,但它会导致 null
:
const store = this.get('store');
const contact = store.createRecord('contact', { name: 'Jack' });
my_address_proxy.then(address => {
contact.set('address', address || store.createRecord('address'));
});
所以我通常有一个模型 created/loaded:
let contact = self.get('store').createRecord('contact');
然后我得到地址,这是模型上的 BelongsTo 关系:
let address = contact.get('address');
返回的 address
变量是一个 Proxy 对象,promise 将其解析为相关模型或 null。
问题是如何创建一个新的地址模型并将其分配给原始联系人对象,但只有地址代理对象?
如果您想创建新的地址记录(而不是模型)并将其分配给新创建的联系人,您可以执行以下操作:
const store = this.get('store');
const contact = store.createRecord(
'contact',
{
name: 'Jack',
address: store.createRecord('address')
}
);
或者如果您已经有一个地址代理并且您只想创建一个新的地址代理,但它会导致 null
:
const store = this.get('store');
const contact = store.createRecord('contact', { name: 'Jack' });
my_address_proxy.then(address => {
contact.set('address', address || store.createRecord('address'));
});