«TypeError: Illegal invocation» при обновлении с версии 1.2
Редактировать: Кажется, что это может быть связано с Chrome v43, я понизил до v42, и все работает отлично.
Редактировать: Я отправилвопрос на репозитории Angular's Github.
Кажется, что ошибка выдаетсяreturn logFn.apply(console, args);
линия12221
в источнике angular.js.
Любые советы о том, что делать сейчас?
Я пытаюсь перенести мое приложение из AngularJS v1.2 в v1.3 или v1.4, но получаюTypeError: Illegal invocation
на Chrome (пробовал win, osx и ubuntu).
Трассировка стека не очень помогает:
TypeError: Illegal invocation
at equals (angular.js:1034)
at equals (angular.js:1034)
at equals (angular.js:1034)
at equals (angular.js:1034)
at equals (angular.js:1034)
at Scope.$get.Scope.$digest (angular.js:15550)
at Scope.$get.Scope.$apply (angular.js:15824)
at done (angular.js:10263)
at completeRequest (angular.js:10435)
at XMLHttpRequest.requestLoaded (angular.js:10376)
Так что это похоже на запросы AJAX, но я также получаю:
TypeError: Illegal invocation
at equals (angular.js:1034)
at equals (angular.js:1034)
at equals (angular.js:1034)
at equals (angular.js:1034)
at equals (angular.js:1034)
at Scope.$get.Scope.$digest (angular.js:15550)
at Scope.$get.Scope.$apply (angular.js:15824)
at tick (angular.js:10983)
я использую$interval
обновить класс модели (который является фабрикой и отражен в представлениях путем установки$scope.client
в этот класс):
var runTimer = function () {
self.timeOnline = time(self.timeSoFar);
self.timeSoFar = Date.now() / 1000 - self.alarmTriggeredTime;
};
$interval(runTimer, 1000);
Я думаю, что есть проблема с$digest/$apply
, Я часами отлаживал это, но до сих пор не понимаю, что происходит.
Любые указатели на дальнейшую отладку очень ценятся.