继承的角度2组件中的输入属性

时间:2016-11-09 22:08:28

标签: javascript angular typescript inheritance

我试图通过继承一些具有一些输入属性的基类来实现角度2中的组件(我使用this example作为实现角度2组件继承的指南)。 / p>

简化示例

export class ComponentBase {
  @Input() text: string = "base";
}

@Component({
  selector: "derived-comp",
  templateUrl: "derived-comp.template.html",
  providers: [
    { provide: ComponentBase, useExisting: forwardRef(() => DerivedComponent) }
  ]
})
export class DerivedComponent extends ComponentBase {
  @Input() dummy: number;
}

这一切都按预期工作,直到我在派生组件中添加一个新的Input属性(dummy,在提供的示例中)。当我这样做时,基类中定义的所有Input属性在运行时变得不可见(尽管编译时一切正常),并且浏览器控制台中的错误表明这些输入不存在:

  

无法绑定到' text'因为它不是一个已知的属性   '衍生-COMP'

有没有人在角度2中遇到类似的组件继承问题?有没有人建议如何克服它(除了代码的复制粘贴)?

1 个答案:

答案 0 :(得分:0)

也许在旧的Angular版本中是p.i.a.,但是现在很简单。参见this post