2014-03-26 29 views
1

以下是我正在加載的頁面的控制器摘錄(in coffeescript - 但應直接閱讀)。一旦我有來自服務器的數據,我將它轉換成一個json數組。然後onChartDataReady運行,通過jsapi加載3個文件,所有http狀態爲200,但GoogleReady永遠不會被調用。無法在Angular App中加載Google圖表

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文件(即,角只是加載HTML),但它具有相同的問題 - 回調不被調用。當我從桌面打開文件時,它工作正常。不知何故角度干擾谷歌回調,我不知道如何排除故障。

任何指針都會非常有幫助!謝謝。

回答

0

這可能與谷歌加載​​器中的一個奇怪行爲有關。嘗試將撥號內容與google.load通話內聯,而不要撥打google.setOnLoadCallback。 JavaScript的應該是這樣的:

google.load('visualization', '1', { packages: ['corechart'], callback: <callback function> }); 

我不是一個coffescript專家,但我認爲這是語法,你可以使用:

google.load 'visualization', '1', { packages: ['corechart'], callback: @onGoogleReady } 
+0

其實,這個問題竟然是,我* *有**使用'setOnLoadCallback()'函數手動引導角度,而不是從ng-app指令加載。 – bob