Javascript “未找到容器”错误,但容器存在

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'}

我只是在用我的应用程序连接高图表,我在其中使用:淘汰3.0require.js 2.1bootstrap 3.0jquery 2.1。我在require.config文件中插入了如下高图:

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。谢谢:)