2016-10-26 2 views
1

Я использую внешний файл Javascript из веб-приложения MVC 5, чтобы отобразить диаграмму для представления. диаграмма использует модель, которая доступна только на стороне сервера, поэтому я кодирую модель в JSON с помощью встроенных js, как показано ниже, а затем вызывает внешнюю функцию, проходящую в строке JSON.Не удается вызвать внешний метод Javascript

<script type="text/javascript"> 

$(document).ready(function() { 

    var JSONdata = @Html.Raw(Json.Encode(Model.PastModels)); 
    var count = @Html.Raw(Json.Encode(Model.PastModels.Count)); 
    createChart(JSONdata, count); 

}); 

Функция определена во внешнем файле.

function createChart(JSONdata, count) { 
    var dates = []; 
    var scores = []; 
    var name = "" 


    for (i = 0; i < count; i++) { 
     dates[i] = JSONdata[i].TheDate; 
     scores[i] = JSONdata[i].TotalScoreT; 
    } 
    var chart = 'totalChart'; 
    name = " Total Score"; 
    renderChart(chart, name); 


    $('.nav-tabs a').click(function (e) { 
     e.preventDefault(); 
     var tab = this.id; 

     switch (tab) { 
      case 'socialTab': 
       for (i = 0; i < count; i++) { 
        dates[i] = JSONdata[i].TheDate; 
        scores[i] = JSONdata[i].SocialPhobiaT; 
       } 
       chart = socialChart; 
       name = ' Social Phobia'; 
       break; 

      case 'panicTab': 
       for (i = 0; i < count; i++) { 
        dates[i] = JSONdata[i].TheDate; 
        scores[i] = JSONdata[i].PanicDisorderT; 
       } 
       chart = panicChart; 
       name = ' Panic Disorder'; 
       break; 

      case 'depressionTab': 
       for (i = 0; i < count; i++) { 
        dates[i] = JSONdata[i].TheDate; 
        scores[i] = JSONdata[i].MajorDepressionT; 
       } 
       chart = depressionChart; 
       name = ' Major Depression'; 
       break; 

      case 'separationTab': 
       for (i = 0; i < count; i++) { 
        dates[i] = JSONdata[i].TheDate; 
        scores[i] = JSONdata[i].SeparationAniextyT; 
       } 
       chart = separationChart; 
       name = ' Separation Anxiety'; 
       break; 

      case 'obsessiveTab': 
       for (i = 0; i < count; i++) { 
        dates[i] = JSONdata[i].TheDate; 
        scores[i] = JSONdata[i].ObsessiveCompulsiveT; 
       } 
       chart = obsessiveChart; 
       name = ' Obsessive Compulsive Disorder'; 
       break; 

      case 'generalTab': 
       for (i = 0; i < count; i++) { 
        dates[i] = JSONdata[i].TheDate; 
        scores[i] = JSONdata[i].GeneralizedAnxietyT; 
       } 
       chart = generalChart; 
       name = ' Generalized Anxiety'; 
       break; 

      case 'totalTab': 
       for (i = 0; i < count; i++) { 
        dates[i] = JSONdata[i].TheDate; 
        scores[i] = JSONdata[i].TotalScoreT; 
       } 
       chart = totalChart; 
       name = ' Total Score'; 
       break; 
     } 

     renderChart(chart, name); 
    }); 
} 

Включая внешний файл, используя раздел.

@section HeadValues{ 
    <script src="https://code.highcharts.com/highcharts.js" type="text/javascript"></script> 
    <script src="https://code.highcharts.com/modules/exporting.js" type="text/javascript"></script> 
    <script src="~/scripts/RCADSResultPage.js" type="text/javascript"></script> 

} 

Однако, всякий раз, когда страница загружается, я получаю сообщение об ошибке «Функция createChart не определена».

Любые предложения были бы очень признательны.

Спасибо.

+0

Это может быть шанс, когда документ готов выполняется до вашего внешней нагрузки файла –

ответ

0

Данная проблема возникает из-за того, что внешний скрипт не был успешно загружен или вызывается перед вызовом функции $ (document) .ready. Убедитесь, что раздел загрузки скрипта перед вызовом функции createChart на странице.

@section HeadValues{ 
    <script src="https://code.highcharts.com/highcharts.js" type="text/javascript"></script> 
    <script src="https://code.highcharts.com/modules/exporting.js" type="text/javascript"></script> 
    <script src="~/scripts/RCADSResultPage.js" type="text/javascript"></script> 

} 

Надеюсь, это поможет вам.

Happy кодирования

Благодаря

Смежные вопросы