1
おそらくシンプルですが、私は狂っています。 第一成分は親角型部品通信2
export class CompaniesComponent {
companies: Company[];
companiesShown: Company[];
}
constructor(private _companiesService: CompaniesService) {
this._companiesService.getCompanies().subscribe(data => {
this.companies = JSON.parse(data.text());
this.companiesShowed = this.companies;
});
}
テンプレートは、このようなものですされています
..
<tr *ngFor="let company of companiesShowed">
<td>{{ company.name }}</td>
</tr>
..
<app-pagination [data]="companies" [(dataShown)]="companiesShown"></app-pagination>
は最後に、子どもたちは、このようなものです:
export class PaginationComponent implements OnChanges {
@Input() data: Object[];
@Input() dataShown: Object[];
ngOnChanges() {
if (this.data != null && this.data.length > 0) {
this.dataShown = this.data;
console.log(this.dataShown);
}
}
}
CONSOLE.LOGは私に右の長さを与えますdataShownの、しかし、親にはいつも未定義/長さゼロ...なぜですか? ありがとう!
しかし、ngOnChanges()メソッドで「式が変更された後に式が変更されました」のようなエラーを出すことはできません。 –
'data'が変更されたときに' dataShownChange'を出したいのですか?正確なエラーメッセージは何ですか? –
私はコードを簡略化しましたが、企業のリストはhttpリクエストから来ているので、アプリケーションページネーションが構築されているときには企業はnullです。 私はhttpリクエストを購読し、次にijsonを配列(企業)にマップします。 配列がいっぱいになると、コンポーネントのapp-paginationは配列会社をスライスして会社に配置する必要があります。このイベント(企業は空ではありません)をNgOnChangesメソッドでインターセプトしますが、このメソッドは親に通知できません。だから私は何をしなければならないのか分からない:( –