简体   繁体   English

灰烬数据多元的怪异行为

[英]Ember data pluralisation strange behavior

I have an ember application with a model named "media". 我有一个名为“ media”的模型的余烬应用程序。 "media" is a singular word. “媒体”是一个单数词。 "medias" is the plural one. “媒体”是复数形式。 I define my model like this : 我这样定义我的模型:

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

Normally, "media" is the singular name of my model. 通常,“媒体”是模型的单数名称。 So my api return this payload executing this.store.find('media', 1) : 所以我的api返回执行this.store.find('media', 1)有效负载:

{
    "media": {
        "id" : 1,
        "name" : "media name"
    }
}

This give me an error: No model was found for 'medium' . 这给了我一个错误: No model was found for 'medium' Ember-data want me to return a payload like this: { "medium": {...}} . 灰烬数据要我返回这样的有效负载: { "medium": {...}} Why does enber-data singularize "media" ? 为什么enber-data将“媒体”单数化? It's already a singular word. 它已经是单数词了。

Moreover, adding irregular rule to the inflector don't affect the adapter at all. 此外,向打折器添加不规则的规则根本不会影响适配器。

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

A complete example can be found here : http://emberjs.jsbin.com/bobaj/5/edit?js,output 一个完整的例子可以在这里找到: http : //emberjs.jsbin.com/bobaj/5/edit?js,output

Instead of using irregular , use singular . 不要使用不规则形式 ,而应使用单数形式 That is, this works: 也就是说,这有效:

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

And here's a JSBin showing that behavior. 这是一个显示该行为的JSBin。

This solves my problem: 这解决了我的问题:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM