Angularコンポーネントをその場で追加および削除できる必要があります。そのために、loadIntoLocationとdisposeメソッドを次のように使用しています。
(レイアウトマネージャーからの)コンポーネントの追加:
this.m_loader.loadIntoLocation(MyComponent, this.m_element, 'content').then(_componentRef => {
// Create the window and set its title:
var component: MyComponent = (_componentRef.instance);
component.ref = _componentRef;
// init the component content
});
コンポーネントの削除(コンポーネントから):
this.ref.dispose();
ほぼ機能しています:-コンポーネントを追加して閉じると機能します-複数のコンポーネントを追加すると機能します-しかし、コンポーネントAを追加してから削除し、次にコンポーネントBを追加すると、Angularは私にAへの参照を与え、いくつかの古い値を保持します(私のコンポーネントはドラッグ可能であり、この場合、Bは作成されますAは私がそれを破壊したときでした)
Angularにコンポーネントを適切に破棄させる方法、または少なくともコンポーネントに新しいコンポーネントを作成させる方法はありますか?