我正在玩一个使用 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
。这是为什么?