Я использую API-интерфейс для включения GA-диаграмм на моем сайте из ServiceAccount. Сайт представляет собой приложение с одной страницей с помощью AngularJS. Я создал несколько директив для каждого типа диаграммы и контроллера, назовите его GAController
, разделяемый между ними. В этом контроллере я использую gapi.analytics.ready(..)
для ожидания полной загрузки объекта analytics.API-интерфейс Google Charts 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