我该如何访问Meteor选项的上下文?

4

有没有办法获取使用{{#each}}生成的选项标签的数据上下文?目前,我根据正在迭代的数据类型使用两种解决方法。

情况1 - 选项游标

<template name="select">
  <select>
    {{#each options}}
    <option value="{{_id}}">{{label}}</option>
    {{/each}}
  </select>
</template>

Options = new Meteor.Collection('options');
Template.select.events({
  'change select': function (e, t) {
    var option_doc = Options.findOne($(e.target).val());
  }
});

案例2 - 选项数组

<template name="select">
  <select>
    {{#each options}}
    <option>{{label}}</option>
    {{/each}}
  </select>
</template>

var options = [{label: "foo"}, {label: "bar"}];
Template.select.events({
  'change select': function (e, t) {
    var option_doc = options[e.target.selectedIndex];
  }
});

如果使用文本输入,事件处理程序中的 this 将是 option_doc。然而,由于更改事件在选择而不是选项上触发,this 指的是模板的数据上下文。
1个回答

0

尝试使用UI.getElementData

来自Meteor文档

UI.getElementData(el) (客户端)

返回从Meteor模板渲染DOM元素时使用的数据上下文。

参数

el DOM元素
由Meteor模板渲染的元素


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接