繁体   English   中英

Rails ERB包含Javascript

[英]Rails ERB Contains Javascript

我是Rails的新手,遇到一个问题,需要将一些Javascript放入ERB文件中。 例如,

<script>
    function init() {
        ....
    }
</script>

<% @list.each do |l| %>
   ....
<% end %>

在模板中,我还有另一个脚本来检查是否存在函数“ init()”,它将在页面加载完成后执行。

当我在测试服务器上尝试时,init()无法执行。 我从Web浏览器检查了页面源,缺少“ <script> ... </ script>”部分。 如果通过单击Web浏览器上的“重新加载”按钮重新加载页面,该部分将再次出现。

我尝试更改某些内容,例如HTML中的对象类,在保存ERB文件后它可以正确更新,但是第一次加载页面时仅无法加载javascript,需要从浏览器中单击重新加载页面。

我想知道这是Rails的缓存问题还是我错了? 我目前在Mac上使用Rails 4.2.1。

谢谢!

如果您只需要将一些变量从erb传输到javascript,则可以在该页面上的特殊标签上使用隐藏字段或属性。 因此,我敢肯定,除非您必须包含一些第三方javascript,否则您确实不需要在erb文件中使用脚本标签。

我非常确定您的问题会出现,因为您使用的是自动集成的Turbolink。

Turbolinks将评估其访问的页面中的任何脚本标签,如果这些标签没有类型或类型是text / javascript。 所有其他脚本标签将被忽略。

来自: https : //github.com/rails/turbolinks

您可以将它们从Gemfile中删除,然后捆绑并重试,以伪造我的假设-或仅将类型包括在script标签中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM