テーブルを作成するhtmlページがあります。この表の列は動的です。つまり、サーバーから「any []」型を使用してコンポーネント内の変数にフェッチされます。この表のデータも動的です。つまり、プログラミング時に、どの列とデータがテーブルにバインドされるのかわかりません。テーブルに列とデータを動的に読み込む2
私は以下のコードを試しましたが、うまく動作しないか、エラーが発生しているようです。これは単に "tbody"に空の "td"を作成します。上記のコードで
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>
、列が正常に作成取得されますが、データや列マッシュアップが機能していません。私はこれを達成するために角度2で道がなければならないと確信しています。
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');
}
}
データは上記のコードでコンソールにログインしますが、私の裁判ごとにHTMLで動作していないなっています。どのようなアイデアをしてください?
更新日:ちょうどあなたが
<tr *ngFor="#data of data" *ngModel="data[column]">
はあなた最終的なHTMLマークアップ投稿することができますか? –
投稿されたマークアップで唯一行った変更は、更新されたものです。 – user728630