}}} === abscomponent.component.html === {{{

abscomponent works! {{message}}

{{h.name}}
{{value}}
}}} === abscomponent.component.ts === {{{ import { Component, OnInit, Input } from '@angular/core'; import { TestData } from './testdata'; import { TableHeader } from './tableheader'; import { TableRow } from './tablerow'; @Component({ selector: 'app-abscomponent', templateUrl: './abscomponent.component.html', styleUrls: ['./abscomponent.component.css'] }) export abstract class AbscomponentComponent implements OnInit { @Input() message: string = "Message"; items: TestData[]; headers: TableHeader[]; rows: TableRow[]; constructor() { this.items = []; this.headers = []; this.rows = []; } ngOnInit(): void { } public configure(input: string, data: TestData[], header: TableHeader[], rows: TableRow[]): void { this.message = input; this.items = []; this.headers = []; this.rows = []; // on push detector data.forEach(element => { this.items.push(element); }); header.forEach(element => { this.headers.push(element); }); rows.forEach(element => { this.rows.push(element); }); console.log("configure called"); } } }}}