在没有原始模型的情况下在EmberJS中设置新关系

时间:2018-05-17 08:26:12

标签: javascript ember.js ember-data

所以我正常创建/加载模型:

        let contact = self.get('store').createRecord('contact');

然后我得到地址,这是模型上的BelongsTo关系:

        let address = contact.get('address');

返回的address变量是一个Proxy对象,promise将解析为相关模型或null。

问题是如何创建新的地址模型并将其分配给原始联系对象,但只使用地址代理对象?

1 个答案:

答案 0 :(得分:2)

如果要创建新地址记录(而不是模型)并将其分配给新创建的联系人,可以执行以下操作:

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'));
});