使用输入/输出扩展组件

Abr*_*ris 9 angular

是否可以扩展Angular 2中的组件并仍然使用父级中的输入和输出?

export class Book {
  @Input() name;
}

export class EBook extends Book {
  @Input() downloadUrl;
  @Input() size;
}
Run Code Online (Sandbox Code Playgroud)

当我尝试扩展组件时,除了需要属性/装饰器的代码(如输入和输出)之外,类中的所有内容都有效.我做了一个说明问题的plunker:http://plnkr.co/edit/cfTKgScbaXMmEMoGY0zr

Book是一个具有一个输入/输出Name的基本组件.

EBook继承自Book并添加输入/输出DownloadUrl,Size.

正如您在plunker中看到的那样,EBook没有获得名称,因为输入是在Book中定义的而不是在EBook中定义的

Sla*_*ast 6

至于当前版本的 Angular(编写本文时为 7.0.1),您的用例得到了完美的支持。Oliver 链接的问题已关闭。

创建了一个示例 Stackblitz(仅突出显示输入装饰器):https ://stackblitz.com/edit/angular-fepmtp


Oli*_*ner 5

对于 rc4,只有当子类本身没有输入装饰器时,才会继承输入装饰器。否则你必须复制所有的声明。

这是一个已知问题,您可以在这里跟进:https : //github.com/angular/angular/issues/5415