简体   繁体   English

无法调用外部Javascript方法

[英]Cannot call external Javascript method

I am using an external Javascript file from an MVC 5 web app to render a chart to the view. 我正在使用MVC 5 Web应用程序中的外部Javascript文件将图表呈现给视图。 the chart uses the model which is only accessible server side so I encode the model in JSON with inline js as shown below and then call the external function passing in the JSON string. 该图表使用的模型只是可访问的服务器端,因此我使用内联js在JSON中编码模型,如下所示,然后调用传入JSON字符串的外部函数。

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

});

The function is defined in an external file. 该函数在外部文件中定义。

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);
    });
}

I am including the external file using a section. 我使用一个部分包含外部文件。

@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> 

 }

However whenever the page is loaded I get the error 'function createChart is undefined'. 但是无论何时加载页面,我都会收到错误'function createChart is undefined'。

Any suggestions would be much appreciated. 任何建议将不胜感激。

Thanks. 谢谢。

The above problem arise due to external script not successfully loaded or call before the $(document).ready function call. 由于外部脚本未成功加载或在$(document).ready函数调用之前调用,会出现上述问题。 Make sure that section for script load before your createChart function call on page. 确保在页面上的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> 

 }

Hope it will help you out. 希望它会帮助你。

Happy coding 快乐的编码

Thanks 谢谢

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM