0

首次尝试掌握 Ember.js atm。我正在尝试制作一个简单的 CMS,但由于某种原因,我无法从显示的 json 中获取任何数据。我已经从 Fixture 切换到 RESTAdapter,但我仍然坚持

错误:断言失败:您的服务器返回了一个带有键时间戳的哈希,但您没有它的映射。

这是我的js代码:

 App.Store = DS.Store.extend(
      {
 revision:12,
 adapter: 'DS.RESTAdapter'
      }
     ); 

 App.Menucategory = DS.Model.extend({
       timestamp: DS.attr('number'),
       status: DS.attr('string')       
});

  App.MenucategoryRoute = Ember.Route.extend({
       model: function() {
               return App.Menucategory.find();
       }
});

DS.RESTAdapter.reopen({
  url: <my url>
});

DS.RESTAdapter.configure("plurals", {
  menucategory: "menucategory"
});

尝试通过以下方式访问它:

<script type="text/x-handlebars" id="menucategory">
    {{#each model}}
{{data}}
    {{/each}}
</script>

我的json结构:

 {
"timestamp": 1366106783,
"status": "OK",
"data": [
{
"name": "starters",
"id": 1
},
{
"name": "main dishes",
"id": 2
}]}

提前感谢您提供的任何帮助。

4

1 回答 1

1

默认情况下,RESTAdapter 期望您的 API 采用特定格式,您的 API 不符合该格式,如果您可以修改您的 API,则需要让它以这种格式返回,否则您需要自定义适配器.

预期格式(基于您的 JSON):

{
  "menucategory": [
    {
      "name": "starters",
      "id": 1
    },
    {
      "name": "main dishes",
      "id": 2
    }
  ],
  "meta": {
    "timestamp": 1366106783,
    "status": "OK",
  }
}
于 2013-04-17T14:54:27.160 回答