0

私は ember に非常に慣れておらず、現在、sinatra api に支えられた (非常に) 軽量な ember アプリケーションに取り組んでいます。API によって提供された JSON を実際の ember オブジェクトにマッピングする際に問題が発生しています。このデータを使用してテンプレートをレンダリングしようとすると、「Uncaught Error: assertion failed: Your server returned a hash with the key 0 but you have no mapping for it」というメッセージが表示されます

これは私の 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 が名前付きルートを返すことを期待しています。

ルートを持つ JSON を返すように API を更新する必要があります

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

于 2013-04-12T03:19:29.947 に答える