所以我有这个用例:
我有一个页面上的联系人列表,并希望允许用户将新的联系人添加到列表中。 为了添加联系人,有一个表格有两个输入,可以填写,并有一个按钮发送表格。
这在Meteor中非常直接。我将提交事件绑定到表单中,如下所示:
Template.contacts.events
'submit #new_contact': (event) ->
event.preventDefault()
firstName = $('#first_name').val()
lastName = $('#last_name').val()
Contacts.insert(firstName: firstName, lastName: lastName)
$('#new_contact input').val('') # Clear the inputs
很好,这也很简单,但我不喜欢在表单中引用特定的ID,使用JQuery获取它们然后在列表中插入新的联系人。我还认为这必须扩展得非常糟糕,如果表单有20个字段,我必须在表单中搜索20个元素,这看起来不太干净。
我想知道是否有更好的解决此问题的方法,例如将表单输入绑定到对象/集合,以便在用户在表单中引入数据时自动更新,然后仅在表单中保留它表单已提交。
答案 0 :(得分:1)
此计划有自动支持(我认为),但与此同时,您可以通过使用模板对象来解决大多数异议:
Template.contact.events
'submit form.contact': (event, template) ->
firstName = template.find('input[name=first_name]').value
或者,在事件助手的主体中,this.currentTarget
就是表单本身。