У меня странное взаимодействие между двумя широко используемыми библиотеками внутри моего приложения Angular 4: ng-bootstrap
(ng- bootstrap) и Highcharts
(Highcharts).
У меня есть этот компонент metering
, содержащий два дочерних компонента: data-selection
и metering-chart
, а именно:
<div>
<data-selection (selectedEntities)="onSelectedData()"></data-selection>
<button (click)="loadMeteringData()">Load Data</button>
<metering-chart *ngIf="chartData" [chartData]="chartData"></metering-chart>
</div>
Где data-selection
содержит следующий разделенный- шаблон:
[...]
<form class="form-inline">
<div class="form-group">
[...]
<div class="input-group">
<input class="form-control"
placeholder="yyyy-mm-dd"
name="dpStart"
[(ngModel)]="startDateModel"
ngbDatepicker
#startDate="ngbDatepicker">
<div class="input-group-addon"
(click)="startDate.toggle()">
<i class="fa fa-calendar"></i>
</div>
[...]
</div>
</div>
</form>
[...]
А компонент metering-chart
содержит:
<chart [options]="options"
(load)="createChartObject($event.context)"
(drilldown)="drilledDown($event)"
(drillup)="drilledUp($event)" style="width:100%; display: inline-block; "></chart>
Компонент
metering
представляет собой компонентrouter-outlet
, объявленный в файлеRoutes
, который, в свою очередь, импортируется компонентомRoutingModule
. ЭтотRoutingModule
импортируетSharedModule
(где оба дочерних компонента:data-selection
иmetering-chart
объявляются и экспортируются) и импортируется основнымAppModule
.
Поскольку изначально значение chartData
для metering
не определено, компонент metering-chart
не отображается. В это время средства выбора даты работают как часы.
Однако только когда я нажимаю кнопку, чтобы загрузить данные диаграммы и саму диаграмму, всплывающие контейнеры средства выбора даты перестают отвечать на запросы.
Я пытался создать плункер, в котором проблема воспроизводилась, но безрезультатно... Однако вот gif, показывающий, что происходит:
Как видите, модель обновляется, когда дата вводится непосредственно в поле ввода. Однако нажатие на любую из дат не дает никакого результата.
Я использую следующее:
Angular v. 4.0.1
angular2-highcharts v. 0.5.5
ng-bootstrap v. 1.0.0-alpha.27
Я мог бы предоставить массу дополнительной информации об архитектуре или взаимодействии компонентов, но ее так много, что, если в моем вопросе не будет чего-то критического, пожалуйста, сообщите мне, и я предоставлю все это.