Как передать собранную информацию через блок #each в Meteor?

Я заполняю раскрывающееся меню различными элементами в коллекции метеоров Cases,

  <select id="caseChoice">
   {{#each case}}
     <option>{{name}}</option>
   {{/each}}
  </select>

Я получаю значение выбора, иначе название по:

 var caseName = document.getElementById("caseChoice").value;

И я могу получить идентификатор дела, используя:

 var caseID = Cases.findOne({name:caseName})._id;

Однако я планирую разрешить пользователям создавать дела с одинаковыми именами. Является ли их способ передать идентификатор через {{each}} без отображения _id в выпадающем списке?

1 ответ

Решение

Если вы хотите, чтобы каждый тег html содержал идентификатор, вы можете сделать это, используя атрибут значения параметра или, альтернативно, используя атрибуты данных html5:

{{#each case}}
  <option value="{{_id}}" data-id="{{_id}}">{{name}}</option> // can use value= or data-id=
{{/each}}

Это будет видно в исходном коде браузера, но не на экране для пользователя. Кроме того, если вы хотите получить доступ к идентификатору через события шаблона, он также будет доступен там:

"click option" /*or whatever event handler is appropriate here*/: function(event, template){
  var id = template.data._id;
  /* alternatively you can call this._id which will generally give you the same result */
  /* then do your event handling, etc. */ 
}
Другие вопросы по тегам