Настройки инфлектора Ember Cli

#ember.js #ember-data #ember-cli

#ember.js #ember-данные #ember-cli

Вопрос:

Где / как я могу настроить Ember.Класс Inflector / создайте его экземпляр, который распознает ember-cli?

Спасибо!

Ответ №1:

Я сгенерировал инициализатор и поместил туда эти данные. Это гарантирует, что он загрузится раньше всего, что может понадобиться. Нравится модель, адаптер или сериализатор.

initializers/inflector.js

 import Ember from 'ember';
export function initialize(/* container, application */) {
  var inflector = Ember.Inflector.inflector;
  inflector.uncountable('aamc-pcrs');
}

export default {
  name: 'inflector',
  initialize: initialize
};
  

Комментарии:

1. Это действительно правильный путь. Принятый ответ (выполнение его в модели) не будет работать в таких ситуациях, как дополнительная загрузка.

Ответ №2:

Я поместил его в файл модели, и он отлично работал:

 import DS from 'ember-data';
import Ember from 'ember';

var inflector = Ember.Inflector.inflector;
inflector.irregular('nota', 'notas');
inflector.singular(/nota/, 'nota');

export default DS.Model.extend({
  title: DS.attr('string'),
  description: DS.attr('string'),
  language: DS.attr('string'),
  body: DS.attr('string')
});
  

Комментарии:

1. Интересно, спасибо — я проверю это… Но как это будет работать? Мы никоим образом не экспортируем инфлектор?

Ответ №3:

Руководства Ember охватывают это в моделях — Настройка адаптеров:

Создайте файл app/models/custom-inflector-rules.js :

 import Inflector from 'ember-inflector';

const inflector = Inflector.inflector;

inflector.irregular('formula', 'formulae');
inflector.uncountable('advice');

// Meet Ember Inspector's expectation of an export
export default {};
  

Затем в app/app.js добавьте строку:

 import './models/custom-inflector-rules';
  

И если вы хотите использовать это в модульном тестировании для сериализатора / адаптера, тогда вы можете просто импортировать custom-inflector-rules файл в тест.