angular6:我希望我的继承组件具有父级的一些属性

NDD*_*nti 7 inheritance components angular angular6

我有一个表,其中每个表格单元格是一个组件的不同实例.根据数据(日期,文本,链接),我使用不同的组件.

由于这些组件有很多共同之处,我引入了一个TableCellMasterComponent,它由所有其他类型的表格单元扩展.

我的所有组件都具有相同的主机属性:

@Component({
  selector: 'td[app-text-col]',
  templateUrl: './text-col.component.html',
  styleUrls: ['./text-col.component.css'],
  host: {
    "[hidden]": "col.deactivated"
  },
  changeDetection: ChangeDetectionStrategy.OnPush
})
export class TextColComponent extends TableCellMasterComponent{
}
Run Code Online (Sandbox Code Playgroud)

是否有可能以某种方式将其移动到TableCellMasterComponent?

我也很想给他们所有人一个上下文菜单.但正如我所看到的,无法在Master中添加HTML.真的吗?

我可以将changeDetection移动到Master吗?

Ale*_*esD 5

@Component装饰元数据是不能继承,所以你不能将一些事情给基类。@Input@Output属性得到继承。

有一个主机属性的解决方案,您可以使用 a@HostBinding代替,这将被继承。例如你的绑定,你可以这样做:

@HostBinding('hidden') get hidden(): boolean { return col.deactivated; }
Run Code Online (Sandbox Code Playgroud)