Ember每个声明

时间:2013-12-19 11:27:28

标签: loops ember.js ember-data

我对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')
});

有什么建议吗?

2 个答案:

答案 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}}