1

我正在尝试在两个单独的视图上绘制两个单独的图表 - 一个在 Project#Index 页面上,另一个在 Project#Show 页面上。我计划在每个模型的相似位置使用不同的图表,因此我在其中创建了app/assets/javascripts/与我的模型相对应的文件夹,并包含这些图表所需的所有 Javascript 文件(我目前每个图表都有一个文件)。我可以让它们自己单独绘制,但是当我将两个文件都提供给浏览器时,它只会绘制 HTML 源代码中第一个列出的文件。我已经确保两个图表都呈现为不同的div- 但这似乎没有帮助。当我在我的网络浏览器中查看 Javascript 控制台时,出现错误:

Uncaught Highcharts error #13: www.highcharts.com/errors/13 

这意味着图表无法找到div它被告知要渲染的内容。

这是有道理的,两个图表都被提供给页面,但只有一个能够找到它对应的div. 能够看到一个而不是另一个也部分解释了这一点 - HTML 源代码中首先列出的图表有效,错误是 Highcharts 说第二个图表找不到它div。当我转到第二个图表的页面时,Highcharts 在第一个图表上出错,而​​第二个图表未呈现。

有没有更好的方法来组织这个?我应该将所有与模型相关的 Javascript 保存在一个文件中吗?我引用的divs 错了吗?

4

1 回答 1

1

因此,经过更多研究以及朋友的帮助,我找到了一个非常合适的答案:

最初,我的app/assets/javascripts/application.js:

//= require_tree .

这将指示 rails 服务器提供该目录中的所有文件,包括目录中的文件。

通过将其更改为

//= require_directory .

rails 服务器现在将只提供直接位于该目录中的文件。

然后,这允许我javascript_include_tag在每个视图中添加单独的 s,如下所示:

= javascript_include_tag "projects/show"

现在我的图表可以工作了,服务器不会不必要地提供 Javascript!

于 2012-11-19T05:38:47.563 回答