問題タブ [angular-changedetection]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angular - コンポーネント コンシューマーが ChangeDetectionStrategy を構成できるようにする
を使用する UI ライブラリにコンポーネントがあるとしますが、プロパティを介して代わりChangeDetectionStrategy.Default
に使用するオプションを消費者に提供したいとしますChangeDetectionStrategy.OnPush
(たとえば、パフォーマンスが重要な状況の場合) 。Input()
実行時にコンポーネントの変更検出戦略を変更することは可能ですか? @Component
または、デコレータでのみ設定できますか?
angular - Ag-grid defaultColDef が最初のコンポーネントのロード後に再適用されない
Ag-grid は、テーブルが最初に非同期取得されたデータを受け取るときに、ngOnChanges を使用して defaultColDef フォーマット (cellStyle および cellRenderer) を完全に適用します。ただし、グリッドを含むコンポーネントが非表示になり、*ngIf 条件によって再初期化された場合、テーブルには正しいデータが再入力されますが、前と同じように ngOnChanges が再びトリガーされても、defaultColDef フォーマットは再適用されません。this.gridOptions.defaultColDef = this.defaultColDef;
ngOnChanges の onGridReady コールバック内に設定されており、デバッグ中に this.defaultColDef が正しいオブジェクトとして定義されていることがわかります。
これは、this.defaultColDef が ngOnInit() で再定義され、さらに ngOnChanges() で再定義された場合でも同様です (簡潔にするために、以下のサンプル コードのコンストラクターに含まれています)。また、onGridReady: (params) 呼び出し全体が ngOnInit() 内で繰り返される場合も同様です。
代わりに、親で columnDefs オブジェクトが構築されるときに、同じ cellStyle および cellRenderer がプロパティとして columnDefs に割り当てられる場合、グリッド コンポーネントが非表示になり、再表示 (再初期化) されるときに、書式設定が正しく適用されます。
実際の結果: コンポーネントの再初期化後に列と行が正しく入力されますが、defaultColDef は適用されません。
期待される結果: hide->show 後のコンポーネントの再初期化後に defaultColDef が適用されます。