Javascript Ember.js-Ember数据不返回模型

Javascript Ember.js-Ember数据不返回模型,javascript,ember.js,ember-data,Javascript,Ember.js,Ember Data,我正在使用余烬数据检索包含歌曲的播放列表。代码是: App.PlaylistRoute = Em.Route.extend({ model: function(params) { var plist = this.store.find('playlist', params.id); console.log(plist); return []; } }) App.Playlist = DS.Model.extend({ be

我正在使用余烬数据检索包含歌曲的播放列表。代码是:

App.PlaylistRoute = Em.Route.extend({
    model: function(params) {
        var plist = this.store.find('playlist', params.id);
        console.log(plist);
        return [];
    }
})

App.Playlist = DS.Model.extend({
    beats: DS.hasMany('beat')
});

App.Beat = DS.Model.extend({
    name: DS.attr('string') 
});
这段代码的问题是,它工作并返回数据,但在一个模糊的对象中,而不是在模型中。然后我无法执行
plist.get('beats')
plist.get('id')
,因为它只返回
undefined
。JSON数据非常简单:

{
    "playlist": {
        "id": "popular-beats",
        "beats": [
            "1",
            "2"
        ]
    },
    "beats": [
        {
            "id": "1",
            "name": "Name"
        },
        {
            "id": "2",
            "name": "Another Name"
        }
    ]
}
在控制台中记录阵列时,返回的对象如下:

__ember1383247403867: "ember293"
__ember1383247403867_meta: e
_super: undefined
content: s
isFulfilled: true
toString: function (){return e}
__proto__: Object
如果我深入到
内容中。_data
我会找到
beats
数组-因此数据加载成功,但它没有返回我所期望的正确模型。

store.find()不会立即返回模型对象,它会返回promise,将来将包含“beats”和“id”属性。所以您可以在模板中使用模型,并且当模型更新时模板将被更新

-这是一个基于路由器和型号的ember应用程序。 在控制台中,您可以看到plist.get('beats')在路由器模型中未定义,但html页面包含它

如果您想在路由器中操纵模型,可以使用setupController

-来源


更多关于承诺的信息-

谢谢你解决了这个问题。我确实从一开始就试过了,但它抛出了一个错误…现在我意识到错误是不同的,它被分类了。谢谢你的帮助。