Ember.js 数据模型似乎没有得到响应填充

Ember.js 数据模型似乎没有得到响应填充,ember.js,Ember.js,我正在尝试制作一个简单的文件浏览器应用程序,但它让我非常头疼。我尝试使用FixtureAdapter将其移植到JSFIDLE中: (我不确定是否在小提琴中正确定义了固定装置,这是我第一次使用此适配器。) 我试图让应用程序(在路由器中)向服务器请求包含3个“子”文件的“根”文件(目录)。然后,服务器返回包含这3个“子”文件的响应: { "file":{ "uri":"L3Rlc3QvdGVzdDA=", "size":1000, "child

我正在尝试制作一个简单的文件浏览器应用程序,但它让我非常头疼。我尝试使用FixtureAdapter将其移植到JSFIDLE中:

(我不确定是否在小提琴中正确定义了固定装置,这是我第一次使用此适配器。)

我试图让应用程序(在路由器中)向服务器请求包含3个“子”文件的“根”文件(目录)。然后,服务器返回包含这3个“子”文件的响应:

{
    "file":{
        "uri":"L3Rlc3QvdGVzdDA=",
        "size":1000,
        "children":["dGVzdC90ZXN0MC90ZXN0MS5ibGE=",
                    "dGVzdC90ZXN0MC90ZXN0Mi5ibGE=",
                    "dGVzdC90ZXN0MC90ZXN0My5ibGE="]
    }
}
(URI是base64编码的。)然后我要求它获取子项,应用程序发出第二个请求(如预期的那样),返回以下响应:

{
    "files" : [
        {
            "uri":"dGVzdC90ZXN0MC90ZXN0MS5ibGE=",
            "size":1,
            "children":[]
        },
        {
            "uri":"dGVzdC90ZXN0MC90ZXN0Mi5ibGE=",
            "size":2,
            "children":[]
        },
        {
            "uri":"dGVzdC90ZXN0MC90ZXN0My5ibGE=",
            "size":3,
            "children":[]
        }]
}
然而,在这个过程中,我注意到两件事:

第一:尽管“根”模型似乎知道它的“子对象”(它发出我期望它发出的请求),但它似乎不知道自己的“uri”或“大小”,因为将此didLoad方法添加到模型中:

didLoad: function () {
    console.log("id: "+ this.id + " " + this.get("uri") + this.get("size"));
}
结果将以下内容打印到控制台:

id: L3Rlc3QvdGVzdDA= nullnull
id: dGVzdC90ZXN0MC90ZXN0MS5ibGE= nullnull
id: dGVzdC90ZXN0MC90ZXN0Mi5ibGE= nullnull
id: dGVzdC90ZXN0MC90ZXN0My5ibGE= nullnull
其次,它似乎忽略了我将主键更改为'uri'
DS.JSONSerializer的努力。_primaryKey(App.File)
返回'id'。我正在尝试几种不同的方法来更改模型中的primaryKey

在发出第二个请求后,3条以上的didLoad行将输出到控制台:

id: L3Rlc3QvdGVzdDA= nullnull
id: dGVzdC90ZXN0MC90ZXN0MS5ibGE= nullnull
id: dGVzdC90ZXN0MC90ZXN0Mi5ibGE= nullnull
id: dGVzdC90ZXN0MC90ZXN0My5ibGE= nullnull
我的视图更新为3行空行(“Filename:”,请参见fiddle中的模板),但它从未填充响应数据

此时,脚本最终遇到错误:

Uncaught TypeError ('hash' undefined): Cannot call method 'hasOwnProperty' of null ember-data.js:6246
    DS.JSONSerializer.DS.Serializer.extend.extractId
这似乎是由第二次响应后JSONSerializer的第四次迭代引起的,虽然响应数组中只有3个项,所以在第四次迭代时“hash”显然为空,问题是它为什么要进行第四次迭代

我希望我在这里的闲话有点道理。看小提琴可能是最容易的。我真的希望有人能发现其中的一些错误,因为我真的没有什么想法了

Im使用emberjs v1.0.0-pre.2-123-ga352c48和ember数据版本11

提前谢谢