Как я могу сериализовать полезную нагрузку простого массива в ember?

Я новичок в Эмбер. У меня есть служба, которая возвращает простой массив, например

[
  "abc",
  "bcd",
  "cde",
  "def",
  "efg"
]

Моя модель примерно такая

import Model from 'ember-data/model';
import attr from 'ember-data/attr';

export default Model.extend({
  value: attr()
});

В сериализаторе (я пытаюсь использовать RESTSerializer) я хочу, чтобы эти данные были отправлены обратно в route.js, где выполняется вызов службы. Вызов службы относится к API, который мне не разрешено каким-либо образом изменять.

Я пробовал много способов, которые могут быть глупыми, и много гуглил. К сожалению, я не смог найти решение, хотя я считаю, что оно может быть не слишком сложным.

Я получил полезную нагрузку в сериализаторе, как вставлено выше, и смог зарегистрировать ответ. Оттуда то, что должно быть возвращено и какой сериализатор подходит, - моя текущая проблема. Пожалуйста, спросите меня, нужны ли какие-либо дополнительные подробности, чтобы понять это. Я не публикую много, так что я могу сделать его простым и понятным. Любая помощь приветствуется.


person sree    schedule 20.05.2016    source источник
comment
Думаю, нужна дополнительная ясность: что вы имеете в виду под сервисом? О каком сериализаторе вы говорите? Что вы сериализуете и куда вы хотите отправить сериализованные данные? Какую версию Ember вы используете? В идеале покажите несколько фрагментов кода из того, над чем вы работаете.   -  person Max Wallace    schedule 20.05.2016


Ответы (1)


Возможно, вы не захотите использовать Ember Data. Однако вы можете реализовать normalizeResponse в своем файле Serializer.

Например, если имя вашей модели — «учетная запись»:

export default DS.RESTSerializer.extend({
    normalizeResponse(store, primaryModelClass, payload, id, requestType) {
        let newPayload= {
            accounts: [{
                value: payload
            }]
        };
        return this._super(store, primaryModelClass, newPayload, id, requestType);
    }
});
person Steve H.    schedule 20.05.2016