gpt4 book ai didi

javascript - Ember 创建多态记录

转载 作者:行者123 更新时间:2023-11-30 08:02:18 25 4
gpt4 key购买 nike

我正在尝试为具有多态关系的模型创建记录。

这是模型:

App.SupportedTransportationMethod = DS.Model.extend({
resource: DS.belongsTo('resource', { polymorphic: true }),
transportationMethod: DS.belongsTo('transportationMethod')
});

我尝试创建记录的模型:

App.Contact = DS.Model.extend({
supportedTransportationMethods: DS.hasMany('supportedTransportationMethod', { async: true }),
companyName: DS.attr('string')
});

我在这里尝试创建一条记录:

supportedTransportationMethod = this.store.createRecord('supportedTransportationMethod', {
transportationMethod: transportationMethod,
resource: contact
});

但是我得到一个断言错误:

Uncaught Error: Assertion Failed: You can only add a 'resource' record to this relationship 

我有一个 jsbin 显示这个。如果您单击其中一个复选框,则会收到错误消息。我正在尝试在 CheckboxItemController 中创建记录。

http://jsbin.com/qebis/6/

有什么想法可以实现吗?我看了this SO但这在您不知道 id 是什么的地方动态创建时效果不佳。插入也不对。

更新:

如果我使用 ember-data prod 版本,它允许创建(因为断言是代码已从 prod 版本中删除)。所以我想知道这是否是断言代码中的错误?

Ember.assert("You can only add a '" + type + "' record to this relationship", !value || value instanceof typeClass);

但是,即使它是从基础模型扩展而来的,它也会将类型设置为当前模型类型来创建它。还不确定这是否是一件好事...

更新 2:

这里再放一个jsbin来展示之前更新的效果。 http://jsbin.com/qebis/7/edit

最佳答案

对于那些使用 ember-cli 的用户,请注意 MODEL_FACTORY_INJECTIONS = trueEmber Data : 1.0.0- beta.11

参见 https://github.com/emberjs/data/issues/2065

关于javascript - Ember 创建多态记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24920546/

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