Ich habe eine HTML-Seite, in der ich eine Tabelle erstellen möchte. Die Spalten in dieser Tabelle sind dynamisch, was bedeutet, dass sie vom Server in eine Variable in der Komponente mit dem Typ "any []" abgerufen werden. Die Daten in dieser Tabelle sind ebenfalls dynamisch, was bedeutet, dass ich zum Zeitpunkt der Programmierung nicht weiß, welche Spalten und Daten in der Tabelle gebunden werden.Dynamisch laden Spalten und Daten in Tabelle in Angular 2
Ich habe unten Code versucht, aber es scheint nicht zu funktionieren oder einen Fehler zu geben. Es erzeugt nur leeres "td" im "tbody".
Expense.component.html
<div class="panel panel-default" style="margin-top:10px;">
<div class="panel-heading">
Expenses
</div>
<div class="panel-body" style="position:relative">
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th *ngFor="#column of columns">
{{column}}
</th>
</tr>
</thead>
<tbody>
<tr *ngFor="#data of data">
<td *ngFor="#column of columns">
{{data.column}}
</td>
</tr>
</tbody>
</table>
</div>
</div>
In dem obigen Code werden die Spalte erfolgreich angelegt zu werden, aber die Daten und Spalte mash up funktioniert nicht. Ich bin mir sicher, dass es in Angular 2 einen Weg geben muss, dies zu erreichen.
Expense.component.ts
export class ExpenseComponent implements OnInit {
errorMessage: any[];
columns: string[];
data: any[];
constructor(private _commonService: CommonService, private _expenseService: ExpenseService) {
}
ngOnInit(): void {
this._commonService.getColumnNames('condomanagement', 'expenses')
.subscribe(data => this.promise(data), error => this.errorMessage = <any>error);
}
private promise(data: string[]) {
this.columns = data;
this._expenseService.getExpenses('condomanagement', this.columns)
.subscribe(data => this.anotherPromise(data), error => this.errorMessage = <any>error);
}
private anotherPromise(data: any[]) {
this.data = data;
console.log(this.columns);
console.log(this.data);
}
private handleError(error: Response) {
console.error(error);
return Observable.throw(error.json().error || 'Server error');
}
}
Die Daten angemeldet sind immer in dem obigen Code zu trösten, aber nicht als pro meiner Studie in dem HTML-Code. Irgendwelche Ideen, bitte?
Aktualisiert: Just Interpolation wie folgt verwendet und es funktionierte
{{mydata [Spalte]}}
können Sie schreiben Sie endgültige HTML-Markup? –
Die aktualisierte Version ist die einzige Änderung, die ich im veröffentlichten Markup vorgenommen habe. – user728630