Ember.js 余烬模型失配
我想通过多个维度帮助定义费率。在后端使用一个表,该表有两个重要的列key和value。值包含json数据。这样可以方便地以多种方式定义费率。下面显示了一种这种可能性Ember.js 余烬模型失配,ember.js,ember-data,Ember.js,Ember Data,我想通过多个维度帮助定义费率。在后端使用一个表,该表有两个重要的列key和value。值包含json数据。这样可以方便地以多种方式定义费率。下面显示了一种这种可能性 key - user:1 value - [ { "id": 1, "activity": 1, "effectiveDate": null, "rate": { "currency": "currency:1", "amount": 10 } }, {
key - user:1
value -
[
{
"id": 1,
"activity": 1,
"effectiveDate": null,
"rate": {
"currency": "currency:1",
"amount": 10
}
},
{
"id": 2,
"activity": 2,
"effectiveDate": null,
"rate": {
"currency": "currency:1",
"amount": 20
}
}
]
在UI上,这需要跨多行显示。唯一性由用户、活动和生效日期定义。
因此——
user, activity, effectivedate, currency, amount
user:1 activity:1 currency:1, 10
user:1 activity:2 currency:1, 20
因此,模型如下所示:
export default DS.Model.extend({
userId: DS.attr('string'),
activityId: DS.attr('string'),
rateAmount: DS.attr('number'),
effectiveDate: DS.attr('date'),
rateCurrencyId: DS.attr('string'),
});
如何将单个键值从API转换为上面显示的模型?前端记录的删除并不一定意味着键值的删除
我是否应该创建两个模型,一个对应于UI,另一个对应于键值,并将更新从一个模型转换到另一个模型,然后保存第二个模型以将其推回服务器?这似乎很麻烦
我选中了transform,但如果必须调整数据类型,这会有所帮助。这里的模型记录数量不匹配
在ember中处理此类场景的正确方法是什么?您需要创建特定于模型的序列化程序,并将其覆盖并转换为所需的模型格式
export default DS.Model.extend({
userId: DS.attr('string'),
activityId: DS.attr('string'),
rateAmount: DS.attr('number'),
effectiveDate: DS.attr('date'),
rateCurrencyId: DS.attr('string'),
});
谢谢你的回复。如果两者之间有一对一的映射,Serializer是非常好的。在这里,API响应将导致余烬模型的多个记录。序列化程序仍然适用吗?是的,在您的情况下仍然适用。您只能定义一个模型来表示服务器发送的所有属性。假设用户删除一条记录。然后,ember将发出一个删除,id为已删除的记录。在这里,实际的请求不应该是删除,而应该是帖子。如何在序列化程序中将删除请求转换为POST?当我们尝试那个样做的时候,我们不是违反了序列化程序的目的吗?@shamanthGowdraShankaramurthy若我理解正确的话,那个么你们就可以做到这一点,并没有任何错误。参考ds改进的ajax功能,但不幸的是他们支持