【问题标题】:How to get value of 'this' with nested {{#each}} in Meteor如何在 Meteor 中使用嵌套的 {{#each}} 获取“this”的值
【发布时间】:2016-08-29 05:05:08
【问题描述】:

我有一个使用 {{#each}} 迭代器生成的简单文档列表:

{{#each Teachers}}
    <td>{{FullName}}</td>
{{/each}}

当用户点击列出的其中一位教师时,一个新页面会转到该教师的个人资料页面,我们可以使用“this”访问该教师的文档,因此我可以说:

var phone = this.phoneNumber;

现在,在该教师的个人资料页面中,生成了该教师的学生的另一个列表:

{{#each Students}}
  <td>{{FullName}}</td>
{{/each}}

当用户单击该列表中的学生(在该教师的页面上)时,我正在尝试再次使用“this”来访问学生文档。所以如果我写:

Template.TeacherTemplate.events({
  'click #student-name': function () {
    console.log(this.FullName);
}

我希望在控制台中看到学生的全名。但是这里仍然引用了老师的全名。单击学生列表时如何获取对学生的引用?

【问题讨论】:

    标签: meteor


    【解决方案1】:

    为学生制作另一个模板。

    <template name='student'>
      <td>{{FullName}}</td>
    </template>
    

    然后在每个循环中使用学生模板。

    {{#each Students}}
      {{> student}}
    {{/each}}
    
    Template.student.events({
      'click': function(){
        console.log(this.FullName);
      }
    });
    

    【讨论】:

      最近更新 更多