使用 setOptions 时 Highcharts 未引用错误

Highcharts not referenced error when using setOptions

我们目前正在使用 DotNet.Highcharts API 将 Highcharts 整合到我们的网站中。但是,我们在使用 .SetOptions(GlobalOptions) 调用时遇到了一些 JavaScript 引用问题。

我们正在使用包装器 class 在控制器中构建我们的图表,然后使用简单的视图来呈现它。

在我们的控制器中:

Chart chart = new HighCharts("chart-id");
chart.SetOptions(new GlobalOptions { Global = new Global { UseUTC = false; } });
chart.SetPlotOptions()...

我们认为:

@model HighchartWrapper

@(Model.Chart)

图表在视图中呈现如下:

<script type="text/javascript">
    Highcharts.setOptions({ global: { useUTC: false } });
    var chart05;
    $(document).ready(function() {
    });
</script>

Chrome 正在筹集

"Uncaught ReferenceError: Highcharts is not defined"

.setOptions() 语句出错。如果没有这个(以及 .NET 中相应的 .SetOptions() 语句),图表将正确呈现。如果我离开此页面然后再次返回,图表将开始正确呈现。

我发现操纵 ToHtmlString() return 值以将 .setOptions 调用置于 .ready() 部分内可使图表正确显示。这是其他人不得不采用的方法吗?

你的怀疑是对的,你需要运行准备好文档中的相关代码如下。

$(document).ready(function() {
    var chart = new Highcharts.Chart(options);
});

根据文档,一旦 dom 加载,所有示例都会执行,因此可以安全地假设这是最佳实践,并期望在 javascipt 库中,正在执行的代码将取决于.ready 函数。当然,通过源代码挖掘将回答您的任何进一步问题,但这完全没问题。

Highcharts - How to set options