我试图在partial page
但它没有用。
如果我将JS code block
移动到布局页面,它就会起作用。
但我不想在每个页面中执行JS代码。
有什么想法吗?
= render 'data_range'
%script{:src => asset_path("kode/js/date-range-picker/daterangepicker.js"), :type => "text/javascript"}
= javascript_include_tag 'common'
/ = javascript_include_tag params[:controller]
:javascript
$(document).ready(function() {
$('#date-range-picker').daterangepicker(null, function(start, end, label) {
console.log(start.toISOString(), end.toISOString(), label);
});
});
!!!
%html
%head
%title= t("site_name")
= render 'layouts/mobile/common_header'
= stylesheet_link_tag "application"
= javascript_include_tag params[:controller]
%body
= yield
%script{:src => asset_path("kode/js/date-range-picker/daterangepicker.js"), :type => "text/javascript"}
= javascript_include_tag 'common'
/ = javascript_include_tag params[:controller]
:javascript
$(document).ready(function() {
$('#date-range-picker').daterangepicker(null, function(start, end, label) {
console.log(start.toISOString(), end.toISOString(), label);
});
});
答案 0 :(得分:1)
我认为,最简单的方法是在布局页面上单独使用JavaScript。这就是我所做的(简化):
views/application/_javascript.html.haml
= javascript_include_tag 'common'
= javascript_include_tag params[:controller]
= yield :additional_js
!!!
%html
%head
%title= t("site_name")
= render 'layouts/mobile/common_header'
= stylesheet_link_tag "application"
%body
= yield
= render 'javascript'
_data_range.html.haml
中执行content_for - content_for :additional_js do
%script{:src => asset_path("kode/js/date-range-picker/daterangepicker.js"), :type => "text/javascript"}
:javascript
$(document).ready(function() {
$('#date-range-picker').daterangepicker(null, function(start, end, label) {
console.log(start.toISOString(), end.toISOString(), label);
});
});
通过这种方式,您可以编写特定于页面的JavaScript并将其呈现在布局中。希望这会有所帮助。
答案 1 :(得分:0)
将您的js代码放置在局部代码中,因此,每当部分加载到页面中时,就会执行js代码。