Как я могу вызвать JS-скрипт в моей папке / app / assets / javascripts со страницы просмотра в Rails? - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь добавить живые часы в веб-приложение, которое я создаю с помощью Rails, и я нашел ответ, который дает мне JS для часов. Решение можно найти здесь: Как показать текущее время в JavaScript в формате ЧЧ: ММ: СС?

Я добавил код в свою папку / app / assets / javascripts под названием «time.js».

Как я могу вызвать метод в этом скрипте для запуска / рендеринга на моей домашней странице (называемый 'Home.html.erb' в разделе Views моего веб-приложения).

Вот код скрипта часов 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>

У меня также есть следующее в 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 в том, что я пытаюсь запустить код в time.js внутри моего файла home.html.erb, но не знаю, как это сделать.

С уважением, Llausa

Ответы [ 2 ]

0 голосов
/ 10 мая 2019

Вы можете использовать javascript_include_tag , чтобы указать конвейеру активов включить файл Javascript на страницу

Подробнее о конвейере активов и о том, как использовать javascript_include_tag здесь

0 голосов
/ 10 мая 2019

Я не уверен, что это правильно, так как я немного запутался, но я понимаю, что вы хотите просто запустить скрипт JS.Предполагая, что вы включили скрипт в файл home.html, он должен работать.

Проверьте, правильно ли вы перешли к нужным файлам, т. Е. Используете ... / для перехода в каталог назад.

В противном случае, без каких-либо примеров или ссылок на ваш код, убедитесь, что вы включили div с идентификатором времени (как в примере в ссылке), поскольку именно здесь он записывает HTML-код из JS.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...