Ember: Сериализация произвольных имен ключей хеша - PullRequest
0 голосов
/ 03 мая 2018

В моем model у меня есть произвольный хэш (DS.attr()), свойства которого возвращаются в виде деширированных. Пример,

{
  'lorem-ipsum': 'Some value',
  'dolor-sit': 'Some value'
}

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

Ответы [ 2 ]

0 голосов
/ 03 мая 2018

Вы можете (и должны) использовать собственный сериализатор для ваших запросов данных.

например:

$ ember g serializer application

создает:

app/serializers/application.js

Если атрибуты, возвращаемые вашим сервером, используют другое соглашение, вы можете использовать метод keyForAttribute () сериализатора, чтобы преобразовать имя атрибута в вашей модели в ключ полезной нагрузки JSON.

В вашем случае, если ваш бэкэнд вернул атрибуты, которые были разбиты вместо camelCased, вы можете переопределить метод keyForAttribute следующим образом.

// app/serializers/application.js

import { camelize } from '@ember/string';
import DS from 'ember-data';

export default DS.JSONAPISerializer.extend({
  keyForAttribute(attr) {
    return camelize(attr);
  }
});

Более подробную информацию вы можете найти на Справочник моделей Ember

0 голосов
/ 03 мая 2018

Да, вы можете написать свое пользовательское преобразование .

В ember-cli используйте ember g transform my-custom-transform.

Тогда вы пишете DS.attr('my-custom-transform').

...