有没有办法获取使用{{#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
指的是模板的数据上下文。