我正在玩一个使用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视图就不再听到该事件。
总之,当我使用template: JST["users/signup"],
进行模板化时,user_registration视图只会听到提交事件,而不是在我使用下划线时。在这两种情况下,我是否应使用el
明确声明视图应在其中监听的区域。这是为什么?