0

JST テンプレートを使用する Rails Backbone アプリのデモをいじっています。user_ registration ビューには、次のような行があります

template: JST["users/signup"],

user_registrationこれはサインアップ テンプレートを参照し、その一部にはIDを持つフォームがあります

<form accept-charset="UTF-8" action="/users" class="simple_form form-horizontal" id="user_registration" method="post">

フォームで [送信] をクリックすると、ユーザー登録ビューがサインアップ関数を呼び出します

events: {
        "submit #user_registration" : "signup"
    },

重要なことに、ユーザー登録ビューは明示的にel. el通常、 はビューがイベントをリッスンする領域を定義するため、これは重要だと思います。このビューでは、宣言されていませんが、送信ボタンがクリックされたときを認識しています。

行を削除すると

   template: JST["users/signup"],

そのテンプレートのコード (#user_registration id を含む) をアンダースコア テンプレートにコピーし、その初期化で user_registration ビューにそのテンプレートを次のように使用するように指示します。

  var template = $('#signup').html();
  this.template = _.template(template);

#user_registration フォームで送信をクリックすると、user_registration ビューはそのイベントを認識しなくなります。

要約すると、user_registration ビューは、template: JST["users/signup"],アンダースコアを使用した場合ではなく、テンプレートに使用している場合にのみ送信イベントを受け取ります。どちらの場合も、ビューが でリッスンする領域を明示的に宣言しませんel。何故ですか?

4

0 に答える 0