如何从Rails的视图页面中调用/App/Asp/JavaScripts文件夹中的JS脚本



我正在尝试在我使用Rails构建的WebApp上添加一个实时时钟,并且找到了一个答案,使我为时钟提供了JS。该解决方案可以在这里找到:如何以HH的格式显示JavaScript中的当前时间:MM:SS?

我已经在" time.js'"标题下将代码添加到我的/app/Assets/javaScripts文件夹。

我该如何调用此脚本中的方法以在我的主页上运行/渲染(在我的WebApp的视图部分中称为'home.html.erb'(。

这是JS时钟脚本的代码:

(function () {
    function checkTime(i) {
        return (i < 10) ? "0" + i : i;
    }
    function startTime() {
        var today = new Date(),
            h = checkTime(today.getHours()),
            m = checkTime(today.getMinutes()),
            s = checkTime(today.getSeconds());
        document.getElementById('time').innerHTML = h + ":" + m + ":" + s;
        t = setTimeout(function () {
            startTime()
        }, 500);
    }
    startTime();
})();

这是我的" home.html.erb"页面中的代码,我正在尝试渲染代码:

<div class="col box">
 <p><i class="far fa-clock"></i><%= javascript_tag "startTime()" %></p>
</div>

i在config/initializers/assets.rb下也有以下内容:

Rails.application.config.assets.precompile += %w( time.js )

和" application.html.erb"下的以下内容:

<%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
<%= javascript_include_tag "time", 'data-turbolinks-track': 'reload' %>

对缺乏示例/不清楚的问题表示歉意!

tl; dr是我正在尝试在我的'home.html.erb'文件中运行代码,但不知道该怎么做。

问候,llausa

您可以使用javascript_include_tag告诉资产管道以在页面中包含javascript文件

有关资产管道以及如何使用Javascript_include_tag的更多信息

我不确定这是正确的,因为我很困惑,但我知道您只想运行JS脚本。假设您已将脚本包含在home.html文件中,则应该起作用。

检查您是否正确地转到正确的文件,即使用.../用于在目录中向后返回。

失败了,没有任何示例或链接到您的代码,请检查您是否包含了带有时间ID的DIV(按照链接中的示例(,因为这是它从JS到。

最新更新