UmbrellaCoders
@UmbrellaCoders
PHP, JS Developer

Как сделать разные сериализаторы для одной модели Ember.js?

Ember.js 2.7 pods

имеем следующее
/pods
/pods/order/model.js
/pods/order/serializer.js
/pods/order/index/route.js
/pods/order/index/template.hbs
/pods/order/edit/route.js
/pods/order/edit/template.hbs
/pods/order/new/route.js
/pods/order/new/template.hbs

router.js
this.route('order', { path: '/dashboard/order/' }, function(){
    this.route('new');
    this.route('edit', { path: '/:order_id/edit' });
  });


model.js
import DS from 'ember-data';

export default DS.Model.extend({
    customer: DS.belongsTo('customer',  {async: true}),
});


serializer.js
import RESTSerializer from 'ember-data/serializers/rest';
import DS from 'ember-data';

export default RESTSerializer.extend(DS.EmbeddedRecordsMixin, {
  attrs: {
    customer: {embedded: 'always'},
  }
});


Как сделать так, что бы в index роуте customer не было, а например в edit роуте уже был customer, api отдает соответственно, по api/orders без customer, а по api/orders/2 уже с customer

Попробовал serialize.js положить в каждую папку(index, edit, new), но так не работает.

Надеюсь понятно объяснил.
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 1
Kaer_Morchen
@Kaer_Morchen
Разрабатываю web-приложения.
Попробовал serialize.js положить в каждую папку(index, edit, new), но так не работает.

Я мало работал RESTSerializer, но да так точно работать не будет.

Может проще не вставлять customer в отдачу для order, а грузить по надобности (только в edit) отдельным запросом?

Для чего вообще нужно такое поведение?
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы