以下是我正在加载的页面控制器的摘录(在coffeescript中 - 但应该直接阅读)。一旦我从服务器获得数据,我将其转换为数组的json数组。然后onChartDataReady运行,通过http状态为200的jsapi加载3个文件,但是从不调用onGoogleReady。
onDataLoad: (data) =>
# @$scope.chartData = transformed data
@onChartDataReady()
onChartDataReady: =>
google.load 'visualization', '1', { packages: ['corechart'] }
google.setOnLoadCallback @onGoogleReady
onGoogleReady: =>
chartTable = google.visualization.arrayToDataTable @$scope.chartData
chartOptions = { title: 'Some silly data' }
chart = new google.visualization.LineChart document.getElementById('chart_div')
chart.draw chartTable, chartOptions
我从谷歌复制了quickstart代码并将其粘贴到没有控制器的html文件中(即angular只是加载html)但它有同样的问题 - 不调用回调。当我从桌面打开文件时,它工作正常。不知何故,角度干扰谷歌回调,我不知道如何排除故障。
任何指针都会非常有用!感谢。
答案 0 :(得分:0)
这可能与谷歌加载器中的奇怪行为有关。尝试使用google.load
调用内联回传,而不是调用google.setOnLoadCallback
。 javascript看起来像这样:
google.load('visualization', '1', { packages: ['corechart'], callback: <callback function> });
我不是coffescript专家,但我认为这是你要使用的语法:
google.load 'visualization', '1', { packages: ['corechart'], callback: @onGoogleReady }