2015-10-21 4 views
0

Я использую Ember 2 и Ember-data 2 и пытаясь получить доступ к необработанной полезной нагрузке json, стандартный выбор RESTAdapter из моего REST Api и хранится в магазине. Не можете найти что-либо по этому поводу в документации или в другом месте. Это единственный способ создать пользовательский RESTAdapter?Как получить доступ к полезной нагрузке json от удаленной службы в Ember при использовании данных Ember?

+0

Зачем вы хотите это для целей отладки? Потому что вы можете легко отладить это в инструментах разработчика Chrome, просмотрев вкладку своей сети. – pjcarly

+0

У меня есть представление в интерфейсе CMS, где я хотел бы отображать содержимое в json в дополнение к тому, что я получаю от модели Ember. Есть некоторые метаданные, которые не сопоставляются с моделью Ember. – jstrom

ответ

1

Способ, которым я хотел бы сделать это, - добавить к вашей модели отдельное свойство, а затем переопределить ваш сериализатор.

Первая ваша модель:

export default DS.Model.extend({ 

    rawJSON: DS.attr() 

    // Your other attributes... 
}); 

Ваш сериализатору (я использую JSONSerializer в качестве примера, но и другие сериализаторов должны быть достаточно похожи):

export default DS.JSONSerializer.extend({ 
    normalize(typeClass) { 
     // Simulate the extra attribute by adding it to the hash 
     hash.rawJSON = JSON.parse(JSON.stringify(json)); 
     // Then let the serializer do the rest 
     return this._super.apply(this, arguments); 
    }, 
    serialize(snapshot, options) { 
     // Let the serializer create the JSON 
     const json = this._super.apply(this, arguments); 
     // Remove the extra attribute we added 
     delete json.rawJSON; 

     return json; 
    } 
}); 

Вы можете сделать это для всех ваших моделей путем переопределения сериализатора приложений или только определенной модели путем переопределения сериализатора только для этого типа.

Смежные вопросы