问题描述
我最近将Angular应用程序从v9升级到了v10。
我注意到不再支持未修饰的类。参见here
因此,在ng upgrade
期间,我没有装饰的抽象组件已更改为具有@Directive()
装饰器。
例如
export abstract class AbstractFormControl implements ControlValueAccessor { ... }
已更改为
@Directive()
export abstract class AbstractFormControl implements ControlValueAccessor { ... }
为什么Angular使用@Directive
。 @Component
会不会是更好的方法,因为该类是一个组件而不是一个指令?目的是什么?
解决方法
组件要求您指定template
或templateUrl
,但不能与
和抽象类。
如注释中所述-组件是一种特殊类型的指令。因此,可以从抽象指令中继承。