В настоящее время я портирую среду разработки с gulp на webpack без angularjs и реагирую на гибридное приложение.
приложение огромное. На данный момент 10мб файлов.
но в настоящее время я сталкиваюсь с некоторыми проблемами.
эта строка: this.$$updateEventHandler = this.$$updateEventHandler.bind(this);, которая находится внутри основного файла angular.js.
и ошибка выглядит так:
TypeError: Cannot read property 'bind' of undefined at ngModel.controller.NgModelController (angular.js:29413)
который я интерпретирую как $$ updateEventHandler, это тот, который не определен, и это также тот случай, когда я помещаю точку останова в строку и проверяю ее внутри devtools.
Я также пытался обновить angularjs, и сейчас я использую версию 1.7.0, прежде чем я попробовал как 1.2, 1.3, 1.4.5 и 1.6.10, но одна и та же ошибка возникает повсюду.
Кроме того, я искал в Интернете, но не смог найти ничего, связанного с этим, что заставляет меня думать, что это просто глупая ошибка, совершенная мной где-то, но я пытался решить ее сейчас в течение 6 часов, и теперь я положил все Мои надежды на вас, дорогие stackoverflowers!



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В моем случае у меня после обновления возникла такая ошибка в декораторе:
$provide.decorator('ngModelDirective', ['$delegate', function($delegate) {
var ngModel = $delegate[0], controller = ngModel.controller;
ngModel.controller = ['$attrs', '$injector', function( attrs, $injector) {
attrs.$set('name', 'custom');
$injector.invoke(controller, this, {
'$attrs': attrs
});
}];
return $delegate;
}]);
Вы должны прикрепить прототип контроллера NGModel к контексту. Вы можете использовать Object.setPrototypeOf (obj, prototype).
$provide.decorator('ngModelDirective', ['$delegate', function($delegate) {
var ngModel = $delegate[0], controller = ngModel.controller;
ngModel.controller = ['$attrs', '$injector', function( attrs, $injector) {
attrs.$set('name', 'custom');
$injector.invoke(controller, Object.setPrototypeOf(this, controller.prototype), {
'$attrs': attrs
});
}];
return $delegate;
}]);
Добавьте директиву
ng-strict-diв тот же элемент, что иng-app, чтобы выбрать строгий режим DI. Для получения дополнительной информации см. Руководство разработчика AngularJS - Использование строгого внедрения зависимостей.