簡體   English   中英

ngModel控制器,未定義$$ updateEventHandler

[英]ngModel controller, $$updateEventHandler is undefined

我目前正在將開發環境從gulp移植到webpack,而無需使用angularjs和React混合應用程序。

該應用程序是巨大的。 目前文件大小為10mb。

但我目前遇到一些問題。 這行: this.$$updateEventHandler = this.$$updateEventHandler.bind(this); 該文件位於主要的angular.js文件中。

錯誤是這樣的狀態:

TypeError:無法讀取ngModel.controller.NgModelController上未定義的屬性'bind'(angular.js:29413)

我將其解釋為$$ updateEventHandler是一個未定義的變量,當我在該行上放置一個斷點並在devtools中對其進行檢查時,情況也是如此。

我還嘗試過更新angularjs,現在我正在運行1.7.0版本,然后再嘗試1.2、1.3、1.4.5和1.6.10,但是到處都出現相同的錯誤。

另外,我已經在網上搜索了,但是找不到任何與此相關的信息,這使我認為這只是我在某處的愚蠢錯誤,但是我嘗試解決了6個小時,現在我把所有我的希望寄給您,親愛的stackoverflowers!

就我而言,更新后我在裝飾器中遇到這樣的錯誤:

$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;

}]);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM