在没有原始模型的情况下在 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'));
});