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

Posted

技术标签:

【中文标题】如何访问 Meteor 中选项的上下文?【英文标题】:How can I access the context of an option in Meteor? 【发布时间】:2014-10-01 07:38:36 【问题描述】:

有什么方法可以获取使用#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。但是,由于 change 事件在 select 而不是 option 上触发,this 指的是模板的数据上下文。

【问题讨论】:

【参考方案1】:

试试UI.getElementData

来自Meteor docs:

UI.getElementData(el) (客户端)

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

参数

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

【讨论】:

以上是关于如何访问 Meteor 中选项的上下文?的主要内容,如果未能解决你的问题,请参考以下文章

将所有 Meteor 用户传递给 Apollo 上下文

Meteor 的反应在幕后是如何工作的?

为啥 Meteor 模板助手不在上下文中返回变量?

Meteor 模板事件处理程序中“this”的上下文(使用 Handlebars 进行模板)

在模板上下文中从另一个助手调用一个助手 (Meteor 0.9.4)

meteor.js - 如何检查来自异步回调的值