on1k
@on1k

Как корректно удалить компонент Angular?

Здравствуйте!
У меня есть метод, который создает компонент
manualParsing(): {
    var component = this.cfr.resolveComponentFactory(LeadTemplateLoaderComponent);
    this.tableViewComp = this.tableViewContainer.createComponent(component);
    this.tableViewComp.instance._ref = this.tableViewComp;
    this.tableViewComp.instance.loadedDataResponse = this.data;
    this.tableViewComp.instance.currentFilePath = this.requestData.FilePath;
    //etc
}


Он создается, с ним работают. И есть еще один метод, который обращается к instance этого компонента и смотрит на его булево
if (this.tableViewComp.instance.isTemplateLoaded) {
      this.tableViewComp.destroy();
      this.manualParsing();
      //Method for new component
      this.DoSomeWithNewComponent()
    }


То есть он должен проверить, если true, тогда он удаляет текущий компонент и создает новый через метод manualParsing();

Проблема в том, что DoSomeWithNewComponent() не отрабатывает на новом компоненте. В дебаге я увидел, что он делает так:
1) Вызывается destroy() на текущем компоненте.
2) Создается новый компонент через manualPearsing();
3) DoSomeWithNewComponent() отрабатывает на старом компоненте.
4) Старый компонент удаляется
5) Новый компонент соответственно без изменений

Как можно решить этот вопрос?
Лазил в офф. документацию, гугл, ничего полезного не нашел там.

P.S Angular v 4.4.3
  • Вопрос задан
  • 760 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы