我们目前正在使用DotNet.Highcharts API将Highcharts合并到我们的网站中。但是,在使用.SetOptions(GlobalOptions)
调用时,我们遇到了一些JavaScript参考问题。
我们正在使用包装器类在控制器中构建我们的图表,然后使用一个简单的视图来呈现它。
在我们的控制器中:
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正在筹集
“未捕获的ReferenceError:未定义Highcharts”
.setOptions()
语句中的错误。如果没有这个(以及.NET中相应的.SetOptions()
语句),图表将正确呈现。如果我离开此页面然后再返回,则图表会开始正确呈现。
我发现操纵ToHtmlString()返回值以将.setOptions
调用放到.ready()
部分内部会使图表正确显示。这是其他人不得不求助的方法吗?
答案 0 :(得分:1)
您的怀疑是对的,您需要在doc中运行相关代码,如下所示。
$(document).ready(function() {
var chart = new Highcharts.Chart(options);
});
根据文档,这些示例都是在加载dom后执行的,因此可以安全地假设这是最佳实践,并期望在javascipt库中,正在执行的代码将取决于.ready
功能。当然,通过源头挖掘将回答你有任何进一步的问题,但这完全没问题。