Как передать собранную информацию через блок #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. */
}