Мне нужно иметь возможность добавлять и удалять угловые компоненты на лету. Для этого я использую методы 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 уничтожать компоненты должным образом или, по крайней мере, заставить его создавать новые?