У меня есть список миссий, когда я нажимаю на миссию, через
<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