私は(それがデータを取得した後に)、それは親コンポーネントだからページ番号とたpageSizeを取得paging.component
を持っています。角度4 - 角度4を使用してOnChanges内部formcontrol.setValueは、()()
paging.component
は、OnChanges
ライフサイクルフックを使用して@Input
の変更を探します。
paging.component
には<select>
の入力があり、ページサイズを変更することができます。 OnInit
フェーズ
、<select>
は、親コンポーネントから渡さのpageSizeに設定されます。
あなたは<select>
でたpageSizeを変更すると、それはすべてOKに動作しますが、私は時々も(元の値のような)別の値に親コンポーネントからたpageSizeを変更したいです。
ただし、pageSizeを親コンポーネントから変更しても、<select>
の入力は変更されません。 (他のすべてが正しく機能しているように見えますが)。
私はngOnChanges
メソッドに次のコードを追加してみました:
if (this.pageSizeFG) {
this.pageSizeCtrl.setValue(this.pagesize);
}
しかし、これはエラーを与える:
ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked. Previous value: 'false'. Current value: 'true'.
ページングはまた、私がしようとした場合のページ1に自分自身をreseting保つように見えます別のページに移動します。
他のライフサイクルフックのうち、ChangeDetectorRef
とngZone
を調べましたが、問題が悪化しているようです。
エラーを示すplnkr hereを作成しました。あなたがpaging.component.ts
に行くとthis.pageSizeCtrl.setValue(this.pagesize);
の行をコメントアウトした場合
は、その後、すべてが<select>
が更新されない EXCEPT正常に動作します。