2015-10-21 2 views
0

У меня есть приложение ember, которое получает его данные из REST API.ember data debug model deserialisation

У меня есть конкретная модель Контакты, которые обрабатываются неправильно.

У вас нет сообщений об ошибке, которые бы вы получили, если не задали себе неправильное имя модели. Полезная нагрузка для маршрута индекса содержит около 1500 контактов, как так:

{"contacts": 
    [{"id":1, 
    "type":"customer", 
    "foreign_key":1242, 
    "first_name":"John", 
    "last_name":"Smith", 
    ... 
    "created_at":"-0001-11-30 00:00:00", 
    "updated_at":"-0001-11-30 00:00:00", 
    "customer_id":1242 
    }, 
    ... 
    ] 
} 

Ответ JSON выглядит хорошо, когда я смотрю на вкладке Network. Браузер способен синтаксически анализировать и отображать ответ.

Я сравнил ответ с аналогичными моделями, и формат выглядит одинаково для меня.

В инспекторе эмбера, под Данные Я получаю 1 контакт с id = null и другими полями undefined.

Контактная модель:

import DS from 'ember-data'; 
export default DS.Model.extend({ 
    type:   DS.attr('string'), 
    foreign_key: DS.attr('number'), 
    first_name:  DS.attr('string'), 
    last_name:  DS.attr('string'), 
    ... more strings 
    created_at:  DS.attr('string'), 
    updated_at:  DS.attr('string'), 
    customer:  DS.belongsTo('customer') 
}); 

уголек 2.0.2
Эмбер-данные 2.0.0
используя структуру стручка

Как я могу исследовать дальше? Похоже, что ответ не анализируется и превращается в . модели должным образом.

ОТВЕТ

Оказывается, что вы не должны использовать type в качестве одного из имен полей в модели.
(я должен был пойти с небольшим звоночком, что я услышал при определении моего DB таблицы ...)

ответ

1

попытка добавления normalizeArrayResponse в вашем приложении Serializer и отладках, как так:

normalizeArrayResponse: function(store, primaryModelClass, payload, id, requestType) { 
 
    console.log(payload); 
 
    return this._super(store, primaryModelClass, normalizedRecords, id, requestType); 
 
}

Просто, чтобы подтвердить, что ваши данные проходят через сериализатор.

+0

спасибо за это, я получаю 'Object {contacts: Array [1357]}' – Loopo

+0

Значение для получения массива из вашей конечной точки. Вы можете 'console.log (JSON.stringify (полезная нагрузка));' видеть его в формате JSON. Почему вы получаете 1357 контактов, не так ли? – pjcarly

+0

это много ... Я сократил его до 200 на данный момент ... в чем смысл конвертации в JSON, так оно и появилось, как в первую очередь ... все выглядит хорошо для меня в этот момент. .. однако я получаю только 1 неопределенный контакт в инспекторе Ember в разделе Data ... – Loopo