#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
файл в тест.