【问题标题】:Class constructor UpgradeComponent cannot be invoked without 'new' after Update to Angular 10更新到 Angular 10 后,如果没有“new”,就无法调用类构造函数 UpgradeComponent
【发布时间】:2020-12-14 07:36:24
【问题描述】:
我刚开始将 Angular 项目从 9.1.0 升级到 10.0.12
它仍然是一个混合应用程序,并且有几个组件升级(来自 Angular JS),如 Angular docs
中所述
但是在更新到 Angular 10 之后,这些升级的组件将无法加载并导致以下错误
没有'new'就不能调用类构造函数UpgradeComponent(在新的MyUpgradedComponentDirective处)
我搜索了Changelog 并没有找到任何关于 UpgradeComponent 的信息。
【问题讨论】:
标签:
angularjs
angular
angular-hybrid
【解决方案2】:
在没有结果的无休止搜索之后,我进入了试错模式。
我发现@Directive 上有一个jit 属性,如果设置为true,上述错误就会消失。
添加jit: true 后,升级后的组件代码如下所示
@Directive({
selector: 'my-angular-selector',
jit: true,
})
export class MyDirective extends UpgradeComponent {
constructor(elementRef: ElementRef, injector: Injector) {
super('angularJsDirectiveSelector', elementRef, injector);
}
}