0

我对 ember 很陌生,目前正在开发一个由 sinatra api 支持的(非常)轻量级的 ember 应用程序。我在将我的 api 提供的 JSON 映射到实际的 ember 对象时遇到了一些问题。每当我尝试使用此数据呈现模板时,我都会收到“未捕获的错误:断言失败:您的服务器返回了一个带有密钥 0 的哈希,但您没有它的映射”

这是我的 API 的 JSON 格式:

[{"sha":"c1133d9ec33"},{"sha":"2b2d4dd4590"}.....]

我的 Ember 代码片段如下:

App.Store = DS.Store.extend({
  LOG_TRANSITIONS: true,
  revision: 12,
});

App.Router.map(function(){
  this.resource('commits', function(){
    this.route('commits', {path: '/:sha'});
  });
});

//COMMITS
App.CommitsRoute = Ember.Route.extend({
  model: function(){
    return App.Commit.find(); //pulls all commts at /commits
  }
});

//COMMIT
App.CommitRoute = Ember.Route.extend({
  model: function(params){
    return App.Commit.find(params.sha);
  }
});

App.Commit = DS.Model.extend({
  sha: DS.attr('string'),
  image_url: function() {
    return 'http://localhost:9393/commits' + this.get('sha');
  }.property('sha')
});

关于为什么会发生这种情况的任何见解?

4

1 回答 1

0

Ember Data 期望您的 API 以命名的根返回。

您需要更新您的 API 以返回带有根的 JSON

{"commits": [{"sha":"c1133d9ec33"},{"sha":"2b2d4dd4590"}.....]}

于 2013-04-12T03:19:29.947 回答