Angular 10 升级 : Why use @Directive() instead of @Component() for abstract (component) classes?

标签 angular angular10

我最近将我的 Angular 应用程序从 v9 升级到 v10。
我注意到不再支持未修饰的类。见 here
所以在ng upgrade期间我没有装饰的抽象组件已更改为具有 @Directive()装饰器。
例如

export abstract class AbstractFormControl implements ControlValueAccessor { ... }
被改成了
@Directive()
export abstract class AbstractFormControl implements ControlValueAccessor { ... }
为什么 Angular 使用 @Directive .不会@Component是一个更好的方法,因为类是一个组件而不是一个指令?意图是什么?

最佳答案

组件要求您指定 templatetemplateUrl ,不能与
一个抽象类。
正如评论中提到的 - 组件是一种特殊类型的指令。所以从抽象指令继承是可以的。

关于Angular 10 升级 : Why use @Directive() instead of @Component() for abstract (component) classes?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63687088/

相关文章:

html - 单击时如何更改文本和按钮图像(或按钮)

javascript - 使用Angular中的 react 形式从字段动态?

docker - 使用用户注册表动态生成子域

javascript - 如何在 Angular 10 中修补动态表单数组的值?

angular - 将 Angular 从 9 升级到 10 错误 : Package '-e' is not a dependency

javascript - 为什么日期格式没有给出正确的值?

angular - ionic 和 Stripe 元素 : keyboard bug with iOS

javascript - RxJS减少函数值参数返回整个arr而不是普通的减少函数

android - Geolocation Ionic 3 总是返回 "{}"