javascript - 带有 javascript_tag 的 View 助手不起作用

标签 javascript ruby-on-rails ruby view-helpers

我正在编写一个 gem,它可以帮助轻松创建图表。 Gem 是 d3.js 库的一些“上层建筑”...

所以,我正在尝试编写一些助手 chart_for,它必须在 html 页面上创建图表。

助手示例:


    def chart_for(text)
      bar_chart = %q[
        $( document ).ready(function() {
          var data = [4, 8, 16, 20, 12, 48];
          var x    = d3.scale.linear().domain( [0, d3.max(data)] ).range( [0, 420] );
          d3.select( ".chart" ).selectAll( "div" ).data( data ).enter().append( "div" ).style( "width", function( d ){ return x( d ) + "px"; } ).text( function( d ){ return d; } );
        });
      ]
      javascript_tag( bar_chart )
    end

但是,不幸的是我在 JS 加载方面遇到了一些问题。

这是我的页面来源:

chart_for helper on html page

页面的最后几行:

enter image description here

和错误:

error

据我了解,浏览器会在 d3.js 加载到页面之前尝试从我的助手运行 JS。 我该如何修复它?

也许我的助手必须将 JS 代码写入 js 文件,而不是 html.erb 文件中?

也许我需要重新定义 javascript_tag 将 JS 代码从 helper 写入 html 页面的末尾?

请把我推向正确的方向:)

最佳答案

你可以尝试吗

jQuery(document).ready(function() {

而不是

$(document).ready(function() {

我曾经与我使用的一些库与 $ 发生冲突。这对我来说是一个快速但非常规的技巧。

关于javascript - 带有 javascript_tag 的 View 助手不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22255238/

相关文章:

ruby-on-rails - 为什么我不能在我的 Rails 应用程序中使用 Gmail 正确设置 FROM 名称?

ruby-on-rails - rails : where to put statistics code?

ruby - Mac OSX 10.11 的默认 gem 是什么?

ruby-on-rails - Rails : Date. 今天 - 1.day

javascript - 有没有办法获取表单元素及其相关值

javascript - jQuery Accordion 获取父 li

javascript - 在不扩展组件的类中更新 React 中的变量

javascript - 检测到双击事件时需要取消点击/鼠标弹起事件

ruby-on-rails - 是否可以在条件参数中不重复Rails ActiveRecord?

ruby-on-rails - Rails : gem. config & rake gems:install -- 没有要加载的文件