2

だから私はこのユースケースを持っています:

ページに連絡先のリストがあり、ユーザーが新しい連絡先をリストに追加できるようにしたいと考えています。連絡先を追加するために、入力できる 2 つの入力があるフォームと、フォームを送信するボタンがあります。

これは Meteor では非常に簡単です。次のスニペットのように、submit イベントをフォームにバインドします。

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 に答える