6

我正在尝试使用 Loopback 来获取与 Ember 对话的 API。

Ember 要求 JSON 包含在“密钥”中,例如对于帐户:

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

我在 Google 小组上找到了一些关于如何使用 afterRemote 挂钩更改响应以便 Ember 接收它的建议。

例如在我的模型/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();
    });

};

我看到响应应该在控制台中.. 但是 localhost:3000/api/accounts 的 JSON 输出没有显示更改后的 JSON 对象。

在 Loopback 中更改 JSON 响应/请求的正确方法是什么?

理想情况下是通用的,因此它可以应用于所有模型。

4

1 回答 1

1

DS.RESTAdapter您可以使用withDS.JSONSerializer像这样使 Ember-data 与 Strongloop 的 loopback api 兼容:

// 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 Data 中,与后端数据存储通信的逻辑存在于适配器中。Ember Data 的适配器对 REST API 的外观有一些内置假设。如果您的后端约定与这些假设不同,Ember Data 可以很容易地通过换出或扩展默认适配器来更改其功能。”

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

类似的问题: Strongloop with Emberjs

于 2015-09-08T21:37:41.637 回答