Meteor如何以

时间:2016-01-14 20:57:46

标签: javascript meteor

我有一个简单的表单,它使用了几个不同的帮助器:

<select class="form-control">
    {{#each openTables}}
        <option>Table {{tableNumber}}</option>
    {{/each}}
</select>
<select id="working-servers" class="form-control">
    {{#each workingServers}}
        <option>{{name}}</option>
    {{/each}}
</select>
<input id="num-of-guests-select" type="text" value="" name="num-of-guests-select">

openTablesworkingServers是访问不同集合的全局帮助程序

Template.registerHelper('openTables', () => {
    let openTables = CurrentTables.find({occupied : false});
    if(openTables) {
        return openTables;
    }
})
Template.registerHelper('workingServers', () => {
    let servers = Servers.find({working : true});
    if(servers) {
        return servers;
    }
});

我的问题基本上是:我正在尝试使用表单中的信息更新CurrentTables集合中的文档。

Template.newTableModal.events({
    'click #sendTable' : function(event, template) {
        event.preventDefault();
        event.stopPropagation();

    }
});

在该事件功能中,如何访问这些选择框的数据上下文?例如,

{{#each workingServers}}
<option>{{name}}</option>
{{/each}}

workingServers中的每个对象都有一个我希望能够在该事件函数中访问的ID:

CurrentTables.update(tableId?, {$set: {"serverId" : ??, "currentGuests" : ??}});

当我制作表单中的文档时,如何访问这些文档?相反,如何从serverId循环中选择的文档中获取workingServers

有没有更好的方法来做这种事情,因为我需要能够在将来做类似的表格?我的意思是我知道我可以取名字值, $("#working-servers").val()并在Servers集合中查找匹配的ID,但这看起来非常糟糕。

1 个答案:

答案 0 :(得分:0)

<select>
  <option value="1">Volvo</option>
  <option value="2">Saab</option>
  <option value="3">Opel</option>
  <option value="4">Audi</option>
</select>

value是选中时返回的值,标记内的文本部分是显示的值。 因此,请在value中使用您的ID以及您在选择

时获得的内容
{{#each workingServers}}
<option value={{serverId}}>{{name}}</option>
{{/each}}