2

所以我有这个用例:

我在页面上有一个联系人列表,并希望允许用户将新联系人添加到列表中。为了添加联系人,有一个可以填写两个输入的表单,还有一个发送表单的按钮。

这在 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 个元素,这看起来不太干净。

我想知道是否有解决此问题的更好方法,例如将表单输入绑定到对象/集合,以便在用户在表单中引入数据时自动更新,然后仅在提交表单时将其持久化.

4

1 回答 1

1

自动支持这个计划(我认为),但与此同时,您可能可以通过使用模板对象来解决大多数反对意见:

Template.contact.events
  'submit form.contact': (event, template) ->
     firstName = template.find('input[name=first_name]').value

或者,在事件助手的主体中,this.currentTarget是表单本身。

于 2012-10-26T01:44:46.993 回答