我正在创建一个包含多个图表(使用AmCharts),网格等的页面。每个图表都有自己的视图。我注意到当我尝试在每个视图上链接amcharts.js时,如果此页面上有两个以上的图表,则不会绘制图表。我决定将这个链接放在主页面中,对于所有图表都是通用的,它们工作正常,但现在我只能通过使用url调用action来看到它们。我尝试动态链接它们,如下所示:
$(document).ready(function () {
if ($("#amchartsLib").length == 0) {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "/Scripts/amcharts/amcharts.js";
script.id = "amchartsLib";
document.body.appendChild(script);
DrawChart();
不幸的是 - 当我实例化图表时,当firebug命中行时(新的AmCharts.AmPieChart();)我得到了ReferenceError:未定义Amcharts。我究竟做错了什么?我可以看到amcharts.js文件已正确添加到HTML文档中。
答案 0 :(得分:3)
看起来你可能要等到加载脚本文件
$(document).ready(function () {
if ($("#amchartsLib").length == 0) {
var script = document.createElement("script");
script.type = "text/javascript";
script.src = "/Scripts/amcharts/amcharts.js";
script.id = "amchartsLib";
document.body.appendChild(script);
script.onload = function () {
DrawChart();
}
}
})
答案 1 :(得分:1)
我会在你的_Layout.cshtml
文件中调用脚本引用(假设你正在使用它),然后使用Sections
来呈现其他脚本标记。像这样:
布局 - 头部(缩写)
<head>
<script src="@Url.Content("~/Scripts/amcharts/amcharts.js")"></script>
</head>
布局 - 底部
@RenderSection("BottomScripts", false) // false = section not required
查看(个人)
@section BottomScripts
{
// your chart script here
}