2013-12-10 51 views
0

我在我一直试图摆脱困境的Ember应用程序中碰到一个障碍。我有一个像以下两种模式:Emberjs在父模型模板中显示关联数据

App.UserModel = DS.Model.extend({ 
    ../ 
    actions: DS.hasMany('action') 
}); 

App.ActionModel = DS.Model.extend({ 
    ../ 
    user: DS.belongsTo('user') 
}); 

我查看用户配置文件路径如下:

App.UsersProfileRoute = Em.Route.extend({ 
    model: function(params) { 
    return this.get('store').find('user', params.user_id); 
    } 
}); 

其中抓起,从服务器的结构如下:

{ 
    user: { 
    action_ids: [1, 2, 3] 
    }, 
    actions: [{ 
    id: 1, 
    type: "Problem" 
    },{ 
    id: 2, 
    type: "Problem" 
    },{ 
    id: 3, 
    type: "Problem" 
    }] 
} 

这根据Ember的Chrome扩展程序正确加载商店。然而,当我尝试访问该协会的数据模板,像这样:

<h2>Actions</h2> 
<div class="container"> 
    {{#each actions}} 
    you have action 
    {{else}} 
    You don't have actions 
    {{/each}} 
</div> 

看来,联想的动作为空或null,因为它没有通过#each检查甚至与灰烬商店显示正确存储的信息。

我已经尝试了一些像{{#each action in model.actions}}等模板,但无济于事。任何帮助,将不胜感激!

回答

1
user: { 
    action_ids: [1, 2, 3] 
}, 

应该

user: { 
    actions: [1, 2, 3] 
}, 
+0

当利用与EmberData的RESTAdapter而不是FIXTUREAdapter? – Aric

+1

在ED 1.0 beta和更新版本 – Kingpin2k

+1

https://github.com/emberjs/data/blob/master/TRANSITION.md – Kingpin2k