【问题标题】:Access dynamic id in template in Meteor在 Meteor 的模板中访问动态 id
【发布时间】:2016-06-02 00:56:43
【问题描述】:

我有一个选择器 id="{{_id}}" 的 Meteor 模板。它获取当前教师姓名对象并将该教师的 id 值分配给选择器的 id。每位教师有多个选择器,但这是一个示例:

<template name="oneTeacher">
  {{#each TeacherNames}}
  <div class="row">
    <div class="input-field col s2">
      <select id="{{_id}}">
        <option value="" disabled selected>Week</option>
        <option value="Week1">Week 1</option>
        ...

如何通过 Meteor 事件在更改函数中获取该 id 值?它需要是这样的:

Template.oneTeacher.events({
  'change #this._id': function () { // doesn't work
    console.log('changed');
  }
});

【问题讨论】:

  • 您不需要id。将class 添加到要定位的元素并在事件处理程序中使用this._id。它将保存数据上下文(在您的情况下为 TeacherName)。
  • 抱歉这个愚蠢的问题,但我如何访问更改后的选择器的值?

标签: meteor


【解决方案1】:

为您的字段提供可用作选择器的内容,例如 class 属性。

<template name="oneTeacher">
  {{#each TeacherNames}}
  <div class="row">
    <div class="input-field col s2">
      <select class="week-select">
        <option value="" disabled selected>Week</option>
        <option value="Week1">Week 1</option>

因为它在#each 子句中,所以它将绑定到相关数组元素的值。

Template.oneTeacher.events({
  'change .week-select'(e, tpl) {
    console.log(this);
  }
});

this 的值将是相应的 TeacherNames 条目。

【讨论】:

  • 正确,如答案中所述。如果你想要select 节点,你可以使用e.target
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-22
  • 2016-06-18
  • 2015-01-23
  • 2016-01-09
  • 2013-04-08
  • 2014-04-01
相关资源
最近更新 更多