2014-09-19 4 views
6

Я пытаюсь Loopback для API, который будет говорить с Ember.Выполнение Loopback API Ember.js совместимо

Ember требует, чтобы JSON содержался в «ключах», например. за счет:

{ account: 
    { domain: 'domain.com', 
    subdomain: 'test', 
    title: 'test.domain.com', 
    id: 1 
} } 

Я нашел несколько советов о группе Google о том, как изменить ответ, так что Эмбер получит его, используя afterRemote крючки.

E.g. в моих моделях/account.js:

module.exports = function(Account) { 

    Account.afterRemote('**', function (ctx, account, next) { 
     if(ctx.result) { 
     if(Array.isArray(ctx.result)) { 
      ctx.res.body = { 'accounts': account }; 
     } else { 
      ctx.res.body = { 'account': account }; 
     } 
     } 

     console.log(ctx.res.body); 

     next(); 
    }); 

}; 

Я вижу, что ответ, как это должно быть в консоли .. однако выход JSON на локальном хосте: 3000/API/счета не показывают измененный объект JSON.

Каков правильный способ изменения ответа/запросов JSON в Loopback?

Идеально в целом, поэтому его можно применять ко всем моделям.

+0

Что означает "проводник" означает? – 2014-09-20 03:00:56

+0

@torazaburo обновленный вопрос – Adamski

+0

Ember не требует, чтобы ваш JSON был чем-то другим, кроме JSON. Я думаю, вы имеете в виду адаптер REST по умолчанию для Ember Data. Ember.js не требует использования данных Ember. И даже если вы это сделаете, вы можете написать пользовательский адаптер для обработки любого отправляемого JSON. – Gaurav

ответ

1

Вы можете сделать Ember-данные совместимы с петлевой апи Strongloop путем использования DS.RESTAdapter с DS.JSONSerializer как это:

// app/adapters/application.js 

import DS from 'ember-data'; 

export default DS.RESTAdapter.extend({ 
    host: 'http://loopback-api-host', 
    namespace: 'api', 
    defaultSerializer: 'JSONSerializer' 
}); 

http://emberjs.com/api/data/classes/DS.JSONSerializer.html

«В Ember данных, логика для связи с магазином бэкенд данных живет в адаптере. Адаптер Ember Data имеет некоторые встроенные предположения о том, как должен выглядеть API REST. Если ваши соглашения с бэкэнд отличаются от этих допущений, Ember Data упрощает изменение его функциональности путем замены или расширения адаптера по умолчанию ».

http://guides.emberjs.com/v2.0.0/models/customizing-adapters/

Похожий вопрос: Strongloop with Emberjs

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