我对ember #each语句有些困难。我有一个用户,他有许多与他相关的科目,我想在列表中显示这些科目。这就是我所拥有的,但它没有渲染任何东西:
<script type = "text/x-handlebars" id = "user">
{{#if deleteMode}}
<div class="confirm-box">
<h5>Really?</h5>
<button {{action "confirmDelete"}}> yes </button>
<button {{action "cancelDelete"}}> no </button>
</div>
{{/if}}
<h3>Name: {{name}}</h3>
<h3>Email: {{email}}</h3>
<h3>Subjects:</h3>
<ul>
{{#each subject in this.user}}
<li>
{{subject.name}}
</li>
{{/each}}
</ul>
<button {{action "edit"}}>Edit</button>
<button {{action "delete"}}>Delete</button>
{{outlet}}
</script>
这是我的用户模型 -
App.User = DS.Model.extend({
name: DS.attr('string'),
email: DS.attr('string'),
subjects: DS.hasMany('subject')
});
我的主题模型 -
App.Subject = DS.Model.extend({
name: DS.attr('string'),
users: DS.hasMany('user')
});
有什么建议吗?
答案 0 :(得分:1)
你做错了。您处于当前用户的上下文中,因此您可以访问他当前的主题。基本上你需要做的是:
{{#each subject in subjects}}
<li>
{{subject.name}}
</li>
{{/each}}
或
{{#each subjects}}
<li>
{{this.name}}
</li>
{{/each}}
答案 1 :(得分:0)
用户是您的范围,因此您可以发送集合
{{#each item in collection}}
为你
{{#each subject in subjects}}
<li>
{{subject.name}}
</li>
{{/each}}