Ember数据多元化奇怪的行为

时间:2014-07-22 09:46:41

标签: ember.js ember-data

我有一个名为“media”的模型的ember应用程序。 “媒体”是一个单数词。 “medias”是复数形式。 我这样定义我的模型:

App.Media = DS.Model.extend({
    name: DS.attr('string')
});

通常,“媒体”是我模型的单数名称。所以我的api返回执行this.store.find('media', 1)

的有效负载
{
    "media": {
        "id" : 1,
        "name" : "media name"
    }
}

这给了我一个错误:No model was found for 'medium'。 Ember-data希望我返回这样的有效载荷:{ "medium": {...}}。 为什么精灵数据会单一化“媒体”?它已经是一个单数词了。

此外,向变形器添加不规则规则根本不会影响适配器。

Ember.Inflector.inflector.irregular('media', 'medias');

可在此处找到完整的示例:http://emberjs.jsbin.com/bobaj/5/edit?js,output

2 个答案:

答案 0 :(得分:1)

不使用irregular,而是使用singular。也就是说,这有效:

Ember.Inflector.inflector.singular(/media/i, 'media');

并且here's显示了这种行为的JSBin。

答案 1 :(得分:0)

这解决了我的问题:

Ember.Inflector.inflector.singular(/([ti])a$/i, '$1a');
Ember.Inflector.inflector.plural(/([ti])a$/i, '$1as');