2016-06-23 9 views
0

Когда API-адрес конечного пункта приложения Google App немедленно вызывается сразу после загрузки страницы, выдается следующая ошибка. Мне нужно подождать несколько секунд, чтобы вызвать API.Ошибка загрузки API-интерфейса Google App Engine

Тогда такое же, когда страница перезагружается некоторыми другими средствами, скажем, вызывается из другой страницы и т.д.

Я попытался добавить функцию обратного вызова для вызова API после нескольких миллисекунд $timeout(queryCallback, 100, false); Результаты являются одинаковыми.

Это ошибка AngularJS или ошибка загрузки ресурса? Как решить эту ошибку, поделитесь своими комментариями.

angular-1.2.16.min.js:89 TypeError: Cannot read property 'queryInfo' of undefined 
    at h.$scope.queryInfoAll (controllers.js:641) 
    at $scope.queryInfo (controllers.js:616) 
    at angular-1.2.16.min.js:119 
    at e (angular-1.2.16.min.js:37) 
    at angular-1.2.16.min.js:40 

controllers.js: 641

gapi.client.database.queryInfo().execute(function (resp) { }

ответ

1

Глядя на Java конечных точек примера here, можно использовать конечные точки в JavaScript инициализации через вызов

<script src="https://apis.google.com/js/client.js?onload=init"></script> 

.. . который вызывает метод JS с именем «init», который является именем метода по вашему выбору. Это, однако, простой простой метод JS, который не знает о жизненном цикле AngularJS. В вашем методе инициализации, кажется, вы явно инициализировать вашу конкретную библиотеку конечных точек, например:

gapi.client.load(apiName, apiVersion, callback, apiRoot); 

Таким образом, в вашем «Run()», вы, возможно, придется спросить, если «GAPI» существует и отложить до тех пор, пока , Затем вы вызываете «gapi.client.load()» с установленной функцией обратного вызова.

+0

Да! таким образом я также загружал конечные точки клиента. Я изменил код, чтобы проверить доступность «gapi» и клиентской конечной точки. Если он недоступен, я вызываю «gapi.client.load» с обратным вызовом. Спасибо за предложение! – SetV