Я использую angularjs и есть эти нг-INIT вызовы делаются в моих частичными:Как заставить ng-init «ждать», пока все библиотеки не будут полностью загружены?
<div ng-init="invited()">
В мой контроллер, я приглашенная вызов структурирована следующим образом. Он имеет Gapi асинхронный вызов:
$scope.invited = function() {
gapi.client.conference.invited().
execute(function(resp){
$scope.$apply(function() {
if (resp.error){
$log.error('There was an Error');
}
else {
$log.info("Success");
$scope.invitedHangouts = []
$scope.invitedHangout=[]
angular.forEach(resp.items, function(invitedHangout){
$scope.invitedHangouts.push(invitedHangout);
});
}
});
});
};
Проблема заключается в том, что всякий раз, когда я обновить страницу с парциальное выше, я получаю TypeError: Не удается прочитать свойство «пригласило» неопределенной.
В этот момент страница загружается. Тем не менее, я заметил своеобразное поведение, которое, как только я обновляю страницу, а затем получаю этот TypeError, когда я перехожу на другую страницу, а затем возвращаюсь к частичному с помощью ng-init выше, тогда он загружается отлично. Затем он выводит «Успех» вместе с остальной информацией.
Почему это происходит, когда я обновляю страницу, я получаю TypeError, а затем, как только я обновил страницу, вы получите TypeError, перейдите от страницы и вернитесь на эту страницу, чтобы она выполнялась нормально?
Я подозреваю, что это связано с тем, что он не закончил загрузку моего кода сервера backend - gapi. Приглашенный() из gapi.client.conference.invited() - это функция, которую я написал для своего сервера в коде python.
От работы с этой проблемой до сих пор, поскольку она в конечном итоге успешно выполняет функцию приглашения() после того, как я перемещаюсь, а затем вернусь на эту страницу, я предполагаю, что это имеет какое-то отношение к тому, что мой front-end вызывая back-end без его инициализации.
В чем особенность заключается в том, что, если мое предположение верно, почему тогда это происходит, когда я пропускаю внешний вызов к чему-то несуществующему в бэкэнд (фактически имитирующему тот факт, что фронт вызывает бэкэнд когда это не делается загрузка), я получаю совершенно другую ошибку? Должен ли я получить тот же TypeError?
Я пропущу щель как таковой: gapi.client.conference.boomshakalaka(). boomshakalaka() не находится в моем базовом коде python.
Сначала, когда я обновляю страницу с помощью этой несуществующей функции в бэкэнд, я получаю ту же ошибку, что и выше. Затем, когда я уйду и вернуться к той же странице, я получаю другой тип ошибки: TypeError: gapi.client.conference.boomshakalaka не является функция
Раньше это было просто TypeError неопределенного, теперь его это TypeError, не являющийся функцией.
Как он может теперь знать, что это не функция? Он мог только знать, если он загрузил задний конец и понял, что нет такой функции при попытке выполнить вызов. Не следует ли это делать из начального обновления страницы, учитывая, что нет существующей функции?
Я думаю, что, возможно, это поймано где-то в подвешенном состоянии между ним, загрузив эти промежутки бранденции в gapi.client.conference, но еще не полностью загрузив все, чтобы «знать», что boomshakalaka действительно не существует.
Как я могу инициализировать эту страницу с помощью этого вызова gapi, но заставить его ждать, пока бэкэнд не будет полностью загружен? Опять же, я подозреваю, что мой бэкэнд-код не загружен полностью, поскольку когда я перехожу от страницы после обновления и возвращаюсь к нему, я не получаю такой ошибки. Все затем успешно печатается на консоли. Только когда я обновляю, я получаю TypeError.
Идеи?
не должен использовать нг иниц таким образом, в первую очередь ... читать документы – charlietfl