2013-11-26 3 views
-1

Я создаю страницу с несколькими диаграммами (используя AmCharts), сетки и т. Д. Каждая диаграмма имеет собственный вид. Я заметил, что когда я пытаюсь связать amcharts.js в каждом представлении, диаграммы не нарисованы, когда на этой странице представлено более двух диаграмм. Я решил поместить эту ссылку на главную страницу, общую для всех диаграмм, и они работают нормально, но теперь я не могу их увидеть, просто вызвав действие с помощью url. Я пытался связать их динамически, например:Динамически добавленный раздел сценария - ReferenceError

 $(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(); 

К сожалению - когда поджигатель попадает в линию, когда я создаю экземпляр диаграммы (новый AmCharts.AmPieChart();) я получаю ReferenceError: Amcharts не определен. Что я делаю не так? Я вижу, что файл amcharts.js был правильно добавлен в документ HTML.

ответ

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

Я бы назвал ссылку скрипт в файле _Layout.cshtml (при условии, что это то, что вы используете), а затем использовать Sections для визуализации другие теги сценария. Что-то вроде этого:

Компоновка - голова (сокращенно)

<head> 
    <script src="@Url.Content("~/Scripts/amcharts/amcharts.js")"></script> 
</head> 

Компоновка - нижний

@RenderSection("BottomScripts", false) // false = section not required 

View (индивидуальный)

@section BottomScripts 
{ 
    // your chart script here 
} 
Смежные вопросы