Фабрика Mirage предназначена для генерации тестовых данных:
Фабрики - это классы, которые помогают вам организовать логику создания данных, облегчая определение различных состояний сервера во время разработки или в тестах.
Фабрика запускается только один раз server.create('foo')
или server.createList('foo', 10)
для создания начальных данных для записей.Это поможет вам избежать дублирования кода в тестах и сценариях.Но это не модель, представляющая эту запись.
На самом деле Mirage не поддерживает что-то вроде вычисляемых свойств из коробки.Но вы можете добиться этого, настроив используемый сериализатор .Переопределение serialize
метода должно сработать:
// serializers/product.js
import { JSONAPISerializer } from 'ember-cli-mirage';
export default JSONAPISerializer.extend({
// This is how to call super, as Mirage borrows [Backbone's implementation of extend](http://backbonejs.org/#Model-extend)
let json = Serializer.prototype.serialize.apply(this, arguments);
json.priceDisplay = '$' + json.price;
return json;
});
Но из вашего примера, приведенного выше, я хотел бы задать вопрос, является ли возврат отформатированной строки из API правильным подходом.Форматирование данных должно быть проблемой клиента на мой взгляд.В противном случае вы быстро столкнетесь с ограничениями, если вам потребуется поддержка локализации или другие форматы в вашем клиенте.