我正在尝试回送与Ember对话的API。

Ember要求将JSON包含在“键”中,例如对于一个帐户:

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

我在Google小组中找到了一些有关如何更改响应的建议,以便使用afterRemote Hook 使Ember能够收到响应。

例如。在我的models/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对象。

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

理想情况下,以一般方式可以将其应用于所有模型。

最佳答案

您可以通过将DS.RESTAdapterDS.JSONSerializer结合使用,使Ember-data与Strongloop的回送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中,与后端数据存储进行通信的逻辑存在于适配器中。EmberData的Adapter内置了一些关于REST API外观的假设。如果您的后端约定与这些假设不同,则Ember Data使其易于实现。通过换出或扩展默认适配器来更改其功能。”

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

类似的问题:
Strongloop with Emberjs

10-04 16:35
查看更多