2
我使用Embed API在我的網站上從ServiceAccount中包含GA圖表。 該網站是一個單頁應用程序與AngularJS。 我爲每個圖表類型和控制器創建了幾個指令,將其命名爲GAController
,它們之間共享。在此控制器中,我使用gapi.analytics.ready(..)
等待分析對象完全加載。Google Charts Embed API不起作用
問題是,當頁面刷新後第一次調用GAController
時,gapi.analytics.ready(..)
被調用回調函數,然後執行認證和其他邏輯。 Hovewer,如果我去這個頁面的第二次 f.e.從其他頁面通過ui-router
,然後回調被添加到ready
但未執行。完全一樣。
在模板頁面底部,有gapi script
:
(function(w,d,s,g,js,fjs){
g=w.gapi||(w.gapi={});g.analytics={q:[],ready:function(cb){this.q.push(cb)}};
js=d.createElement(s);fjs=d.getElementsByTagName(s)[0];
js.src='https://apis.google.com/js/platform.js';
fjs.parentNode.insertBefore(js,fjs);js.onload=function(){g.load('analytics')};}
(window,document,'script'));
我的代碼如下:
gapi.analytics.ready(function() {
// this is not called the second time
if (!gapi.analytics.auth.isAuthorized()) {
gapi.analytics.auth.authorize({
serverAuth: $scope.$parent.getAccessToken()
});
}
// do some other logic
});
,但所有的時間gapi.analytics
對象處於相同的狀態{ q: [], ready: function()...}
。
有人可以幫助我理解發生了什麼。 感謝您的任何幫助
我有同樣的問題,任何人都可以幫助我們 – andy