Javascript “未找到容器”错误,但容器存在
我只是在用我的应用程序连接高图表,我在其中使用:淘汰3.0,require.js 2.1,bootstrap 3.0,jquery 2.1。我在require.config文件中插入了如下高图:Javascript “未找到容器”错误,但容器存在,javascript,jquery,twitter-bootstrap,knockout.js,highcharts,Javascript,Jquery,Twitter Bootstrap,Knockout.js,Highcharts,我只是在用我的应用程序连接高图表,我在其中使用:淘汰3.0,require.js 2.1,bootstrap 3.0,jquery 2.1。我在require.config文件中插入了如下高图: requirejs.config( baseUrl: 'thirdparty', packages: [ ...... {name: 'Highcharts', location: 'highcharts', main: 'highcharts.js'}
requirejs.config(
baseUrl: 'thirdparty',
packages: [
......
{name: 'Highcharts', location: 'highcharts', main: 'highcharts.js'}
],
paths: {
'jquery': 'jquery/jquery',
'highcharts': 'highcharts/highcharts.exporting.module',
'highcharts-theme': 'highcharts/dark-blue',
'highcharts-module': 'highcharts/highcharts'
},
shim: {
'highcharts-module': {exports: 'Highcharts', deps: ['jquery']},
'highcharts-theme': ['highcharts-module'],
'highcharts': {deps: ['highcharts-module', 'highcharts-theme'], exports: 'Highcharts'}
}
);
这是我的淘汰视图模型:
define(['jquery', 'knockout', 'Highcharts'], function($, ko){
return function MyViewModel(){
var self = this;
self.chartOptions = {.....} // copy pasted stuff from one of the examples
self.drawChart = function(){
#("#container").highchart(self.chartOptions);
}
self.drawChart();
}
});
ko.applyBinds在此vm的父级中完成。这是我的html模板,它的prettymuch是一个包含div的容器:
<div class="row">
<div class="col-md-10">
<div class="well container">
<div id="container"></div>
</div>
</div>
</div>
重新加载浏览器时,出现以下错误:
**Highcharts错误#13:www.Highcharts.com/errors/13**
任何帮助都将不胜感激。多谢各位 好吧,多亏了Esteban的建议,我才弄明白为什么在vm代码运行时没有加载div。我通过向knockout添加自定义绑定处理程序来修复它
ko.bindingHandlers.initHighCharts ={
init: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
var val = ko.unwrap(valueAccessor());
if(val.data){
try {
$(element).highcharts(val.data);
} catch(e){
console.log(e);
}
}
},
update: function(element, valueAccessor, allBindings, viewModel, bindingContext) {
}
};
在html模板中执行了以下操作:
<div class="row">
<div class="col-md-10 no-margin">
<div class="well container">
<div data-bind="initHighCharts: {data: chartingOptions}"></div>
</div>
</div>
</div>
自定义绑定使vm的代码在加载div后启动 您是否尝试过在self.drawChart()上设置断点?可能是调用drawChart时容器实际上不存在。JSFIDLE将极大地帮助您诊断问题!你是对的!vm的代码运行时未加载div。谢谢:)