Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails JST v下划线模板_Ruby On Rails_Backbone.js_Jst - Fatal编程技术网

Ruby on rails JST v下划线模板

Ruby on rails JST v下划线模板,ruby-on-rails,backbone.js,jst,Ruby On Rails,Backbone.js,Jst,我正在玩一个使用JST模板的Rails主干应用程序演示。在用户注册视图中,它有这样一行 template: JST["users/signup"], var template = $('#signup').html(); this.template = _.template(template); 这是指注册模板,其中一部分有一个带有用户注册id的表单 <form accept-charset="UTF-8" action="/users" class="simple_form

我正在玩一个使用JST模板的Rails主干应用程序演示。在用户注册视图中,它有这样一行

template: JST["users/signup"],
  var template = $('#signup').html();
  this.template = _.template(template);
这是指注册模板,其中一部分有一个带有
用户注册
id的表单

<form accept-charset="UTF-8" action="/users" class="simple_form form-horizontal" id="user_registration" method="post">
重要的是,用户注册视图没有明确声明
el
。我认为这很重要,因为
el
通常定义视图侦听事件的区域。在这个视图中,它没有声明,但是它知道何时单击submit按钮

如果我拆下这条线

   template: JST["users/signup"],
并将代码从该模板(包括#user_注册id)复制到下划线模板中,然后在初始化时告诉user_注册视图使用该模板,如下所示

template: JST["users/signup"],
  var template = $('#signup').html();
  this.template = _.template(template);
一旦我在#user_注册表单上单击提交,user_注册视图将不再听到该事件


总之,当我使用
template:JST[“users/signup”],
进行模板化时,user\u registration视图只会听到提交事件,而不是在我使用下划线时。在这两种情况下,我都没有明确声明视图应该使用
el
侦听的区域。为什么呢

我不确定如何在JSFIDLE上重新创建一个包含用户模板的文件夹,该文件夹将对此做出响应,模板:JST[“users/signup”],但
JST
只是一个充满JavaScript函数的对象。要解释@muistooshort,只需将编译后的JST模板复制到FIDLE中即可。您还可以通过
console.log(this.$el)
轻松找到您的视图连接到页面上的哪个元素。您知道……有了路由器并且需要许多存根,我无法找到一把小提琴来重现问题。然而,如果有人想要的话,这是其他人的Rails应用程序,带有主干实现装置。如果我使用JST模板并将它们放在脚本标记中以使用OP中描述的下划线,那么它就不起作用。