2016-08-01 79 views
1

我试图使用谷歌图表仪表板调用表格图表,但我得到这个错误。不知道这有什么问题。尽管代码与我以前的图表很相似。与Table Chart有什么不同?未捕获的SyntaxError:意外的输入谷歌图表结尾

HTML

<div id="dashboard3_div"> 

       <div id="filter3_div"></div> 
       <br /> 
       <div id="chart3_div"></div> 
      </div> 

JS(通过C#生成)

google.charts.setOnLoadCallback(drawDashboard); 

    function drawDashboard() { 
     var data = google.visualization.arrayToDataTable([ 
      ['ID', 'Time', 'Status', 'Assignee', 'DTime'], 
// My data here 

     ]); 
     var dashboard = new google.visualization.Dashboard(document.getElementById('dashboard3_div')); 
     var slider = new google.visualization.ControlWrapper({ 
      'controlType': 'CategoryFilter', 
      'containerId': 'filter3_div', 
      'options': { 
       'filterColumnLabel': 'Assignee', 
       'ui': { 
        'allowTyping': true, 
        'allowMultiple': false, 
        'allowNone': false, 
        'sortValues': false, 
       } 
      } 
     }); 
     var table= new google.visualization.ChartWrapper({ 
      'chartType': 'table', 
      'containerId': 'Assignee', 
     }); 

     dashboard.bind(slider, table); 

     // Draw the dashboard. 
     dashboard.draw(data); 

Uncaught SyntaxError: Unexpected end of input

92号线是dashboard.draw(data);

+0

你在哪里关闭drawDashboard? – madalinivascu

+0

@madalinivascu这样做的伎俩。我没有关闭drawDashboard标签! –

回答

0

我觉得你刚才有几个错字.. 。

首先,确保你包括'table'包(在问题未画出)
packages: ['controls', 'table']

接下来,containerId在桌子上看起来关闭,它应该匹配divid ...

尝试 - >'containerId': 'chart3_div'

代替 - >'containerId': 'Assignee'

最后,chartType需要匹配图表的类名
所以'table'需要资本化 - >'Table'

看到下面的工作片段...

google.charts.load('current', { 
 
    callback: function() { 
 
    var data = google.visualization.arrayToDataTable([ 
 
     ['ID', 'Time', 'Status', 'Assignee', 'DTime'], 
 
     [0, '7:47 am', 'Testing', 'WhiteHat', '8:00 am'] 
 
    ]); 
 
    var dashboard = new google.visualization.Dashboard(document.getElementById('dashboard3_div')); 
 
    var slider = new google.visualization.ControlWrapper({ 
 
     'controlType': 'CategoryFilter', 
 
     'containerId': 'filter3_div', 
 
     'options': { 
 
      'filterColumnLabel': 'Assignee', 
 
      'ui': { 
 
       'allowTyping': true, 
 
       'allowMultiple': false, 
 
       'allowNone': false, 
 
       'sortValues': false, 
 
      } 
 
     } 
 
    }); 
 
    var table= new google.visualization.ChartWrapper({ 
 
     'chartType': 'Table', 
 
     'containerId': 'chart3_div', 
 
    }); 
 

 
    dashboard.bind(slider, table); 
 

 
    // Draw the dashboard. 
 
    dashboard.draw(data); 
 
    }, 
 
    packages: ['controls', 'table'] 
 
});
<script src="https://www.gstatic.com/charts/loader.js"></script> 
 
<div id="dashboard3_div"> 
 
    <div id="filter3_div"></div> 
 
    <br /> 
 
    <div id="chart3_div"></div> 
 
</div>

+0

'containerId'必须是您的页面上将承载控件的DOM元素的ID。我没有关闭drawDashboard标签,因此我得到了问题。 –

+0

对,在你的问题中,没有DOM元素的ID为“Assignee” - 但Chart表中的ChartWrapper有'containerId':'Assignee' - 这会导致错误。 .. – WhiteHat

+0

啊,在发布代码的时候必须做出错误的改变。 –

相关问题