Ember.js Rest Adapter:映射没有root的JSON(.NET Web API)

Tys*_*ero 8 javascript json ember.js asp.net-web-api ember-data

我有一个用.NET Web API编写的现有服务.

例如,此服务以以下格式返回JSON:

[
  { "id": 1, "name": "John" },
  { "id": 2, "name": "Jane" }
]
Run Code Online (Sandbox Code Playgroud)

但是,根据Ember.js Rest Adapter文档,Ember会期望JSON采用以下格式:

{
  "persons": [
    { "id": 1, "name": "John" },
    { "id": 2, "name": "Jane" }
  ]
}
Run Code Online (Sandbox Code Playgroud)

因此,Ember返回以下错误: 您的服务器返回带有键0的哈希,但您没有映射

我决不打算更改我的服务API以及它如何返回数据.

是否有可能让Ember.js(最新版本)使用我的服务返回的现有数据?如果是这样,我该如何实现呢?

Mil*_*Joe 5

从这个意义上讲,Ember非常灵活,可以扩展适配器和序列化程序,以便将您的应用程序与任何后端API集成.

您应该获取WebAPIAdapter,它是Web APIEmber.js模板的一部分.

另外,你可能想看看我写的这个项目,作为一个例子,基于相同的模板(我自己做了一些修改).它仍处于开发阶段,并没有包含所有最佳实践(但),但我认为这是一个有效的例子.

您还应该查看这个repo /库(您也可以通过NuGet安装它),它允许您将Handlebars模板直接预编译到Ember.TEMPLATES集合中.