Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/439.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript “余烬数据”;“无映射”;错误,尽管具有正确命名的模型_Javascript_Ember.js - Fatal编程技术网

Javascript “余烬数据”;“无映射”;错误,尽管具有正确命名的模型

Javascript “余烬数据”;“无映射”;错误,尽管具有正确命名的模型,javascript,ember.js,Javascript,Ember.js,正在学习Ember,我正在尝试从服务器加载一篇“博客文章”。我的路由正常工作,REST请求正确发出,我的服务器(node/express/mongoose)正确返回数据 然而,恩伯抱怨说: 断言失败:您的服务器返回了一个带有密钥页的哈希,但您没有该哈希的映射 根据我所有的研究,这应该很有效 型号代码: App.Page = DS.Model.extend({ slug: DS.attr('string'), title: DS.attr('string'), cont

正在学习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"
  }
}

我的代码有三个问题:

  • bower install ember data
    没有安装最新版本,我不得不使用
    bower install ember data#1.0.0-beta.10
  • 使用
    this.store.find('page',{slug:'bbb'})
    显然让ember假设返回的记录不止一条,所以它无法接受任何一条记录。我必须使用id语法:
    返回this.store.find('page','bbb')
  • 在正确地“查询”单个记录之后,我必须确保记录JSON具有
    id
    属性:
    {“page”:{“id”:“54345c895b24bfc4df34cf86”,“slug”:“bbb”,“title”:“bbb”,“content”:“bbb”}

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

你的Json结果有ID字段吗?你能从你的代码样本中创建jsbin原型吗?我试图自己构建它,但我不能重复那个断言错误。你可以把我的例子作为你实验的基础:。顺便说一句,我试图揭示在余烬数据中按参数(而不是id)查找和按id查找记录之间的区别(参见jsbin中的示例)。运行
bower安装余烬数据
安装版本0.14<代码>余烬数据#0.0.14
,但您的示例使用的版本是
1.0.0-beta.10+canary.30d6bf849b
。当我在本地使用它时,我不再看到任何错误。我必须运行
bower安装余烬数据#1.0.0-beta.10