0

我正在玩一个使用 JST 模板的演示 Rails Backbone 应用程序。在 user_registration 视图中,有这样一行

template: JST["users/signup"],

指的是注册模板,其中一部分有一个带有user_registrationid的表单

<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