我正在使用Meteor Collection Cases
中的不同项目填充下拉菜单。
<select id="caseChoice">
{{#each case}}
<option>{{name}}</option>
{{/each}}
</select>
我得到了选择的价值,又名:
var caseName = document.getElementById("caseChoice").value;
我可以使用以下方法检索案例的ID:
var caseID = Cases.findOne({name:caseName})._id;
但是我计划让用户创建具有相同名称的案例。他们是否可以通过{{each}}
传递ID而不在下拉选项中显示_id
?
答案 0 :(得分:2)
如果您希望每个html标记都包含id,则可以使用选项的value属性,或者使用html5数据属性:
{{#each case}}
<option value="{{_id}}" data-id="{{_id}}">{{name}}</option> // can use value= or data-id=
{{/each}}
这将在浏览器的源代码中显示,但不会在屏幕上显示给用户。或者,如果您想通过模板事件访问id,它也可以在那里使用:
"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. */
}