4

で生成されたオプション タグのデータ コンテキストを取得する方法はあります{{#each}}か? 現在、繰り返し処理しているデータの種類に応じて、2 つの回避策を使用しています。

ケース 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れるため、テンプレートのデータ コンテキストを参照します。

4

1 に答える 1