我最近将我的 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
,不能与
一个抽象类。
正如评论中提到的 - 组件是一种特殊类型的指令。所以从抽象指令继承是可以的。
关于Angular 10 升级 : Why use @Directive() instead of @Component() for abstract (component) classes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63687088/