Angular Показать график, когда div виден - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть список миссий, когда я нажимаю на миссию, через

<a (click)="showMission(mission);"...

я называю эту функцию

showMission(mission) {
      this.scrollUp();
      this.mission = mission;
      if (this.showHideMission === false) {
            this.showHideMission = true;
      }

      this.showHideCreateMission = false;
      this.showHideEditMission = false;
  }

, которая меняет статус этой div наtrue

<div *ngIf="showHideMission" class="ng-hide m-portlet m-portlet--full-height ">

и позвольте мне прочитать данные внутри.

Я хотел показать диаграмму из amchart внутри этого div, затем я вставил

<div id="chartdiv" style="width: 100%; height: 400px; background-color: #FFFFFF;" ></div> внутри <div *ngIf="showHideMission"..

Я создал функцию, которая создает график

createTimelineChart(mission){
let chart = am4core.create("chartdiv", am4charts.XYChart);
...

}

И я изменил функцию showMission на:

showMission(mission) {
      this.scrollUp();
      this.mission = mission;
      if (this.showHideMission === false) {
            this.showHideMission = true;
      }

      this.showHideCreateMission = false;
      this.showHideEditMission = false;
      this.createTimelineChart(mission); <---ADDED THIS LINE
  }

Затем,когда я открываю миссию, я получаю эту ошибку:

html container not found
core.js:1673 ERROR Error: html container not found
    at createChild (Instance.js:129)
    at Module.create (Instance.js:172)
    at MissionComponent.push../src/app/mission/mission.component.ts.MissionComponent.createTimelineChart (mission.component.ts:203)
    at Object.eval [as updateDirectives] (MissionComponent.ngfactory.js:8278)
    at Object.updateDirectives (core.js:10798)
    at checkAndUpdateView (core.js:10451)
    at callViewAction (core.js:10692)
    at execEmbeddedViewsAction (core.js:10655)
    at checkAndUpdateView (core.js:10452)
    at callViewAction (core.js:10692)

Но если я открываю вторую миссию, она показывает диаграмму без каких-либо ошибок (потому что <div id="chartdiv".. уже показана), поэтому настоящая проблема здесьчто он не может найти div в первую очередь, хотя я вызвал функцию для создания диаграммы после установки showHideMission в true

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...