尽管具有正确命名的模型,但是Ember数据“无映射”错误

时间:2014-10-07 22:05:57

标签: javascript ember.js

学习Ember,我试图加载一篇博客文章"从服务器。我的路由正常,REST请求正常,我的服务器(node / express / mongoose)正在正确地返回数据。

但是,抱怨抱怨:

  

断言失败:您的服务器返回了一个带有关键页面的哈希,但您没有映射

根据我的所有研究,这应该可行。

型号代码:

  App.Page = DS.Model.extend({
    slug: DS.attr('string'),
    title: DS.attr('string'),
    content:  DS.attr('string')
  });

路线的模型连接:

App.PageRoute = Ember.Route.extend({
  model: function(params){
    return this.store.find('page', {slug:params.slug});
  }
});

当路由加载时,这是来自服务器的JSON响应:

{
  "page":{
    "slug":"bbb",
    "title":"bbb",
    "content":"bbb"
  }
}

1 个答案:

答案 0 :(得分:0)

我的代码有三个问题:

  • bower install ember-data未安装最新版本,我必须使用bower install ember-data#1.0.0-beta.10
  • 使用this.store.find('page', {slug:'bbb'});显然使得ember假设将返回多个记录 - 因此它无法接受任何单个记录。我必须使用id语法:return this.store.find('page', 'bbb');
  • 一旦我正确“查询”单个记录,我必须确保记录JSON具有id属性:{"page":{"id":"54345c895b24bfc4df34cf86","slug":"bbb","title":"bbb","content":"bbb"}}

一旦我解决了所有这三个问题,我就会看到我的单个记录正确返回。