我正在尝试将javascript文件加载到我的rails应用程序中,但仅适用于我的应用程序中的特定页面,而不是主页。如何使用rails来加载我的javascript文件以加载特定页面。
我现在拥有的javascript,位于assets / javascript中的programs.js中,如下所示:
document.addEventListener('DOMContentLoaded', (event) => {
let program = document.getElementsByClassName('program-name')
console.log(program)
})
再次,代码本身工作正常。问题是它是为主页执行的,而不是我想要的任何特定页面。我如何在rails应用程序中获取特定页面的代码?
答案 0 :(得分:3)
为什么不将javascript标记添加到您希望它运行的视图中?
如果您想要更好的渲染速度,可以在布局中添加页面结束率,然后在视图中指定您的javascript,如下所示:
<!DOCTYPE html>
...
<%= yield(:scripts) %>
</body>
</html>
<!-- regular view code here -->
...
<% content_for :scripts %>
<%= javascript_tag do %>
document.addEventListener('DOMContentLoaded', (event) => {
let program = document.getElementsByClassName('program-name')
console.log(program)
});
<% end %>
<% end %>
答案 1 :(得分:1)
另一种方法是执行以下操作:
应用/视图/布局/ application.html.erb 强>
if($('body').is('.yourcontroller.youraction'){
// Do something
}
然后,在您的脚本文件中,您可以执行以下操作:
h1 { margin-top: 100vh; }