в моем приложении у меня есть панель инструментов, где пользователь может добавлять и удалять виджеты.Для этого я использую angular-gridster2.Это хорошо работает, но когда я добавляю или удаляю виджет с панели мониторинга, сначала никакие виджеты больше не отображаются, а затем только после обновления происходят корректные изменения.Мой список виджетов, по которому перебирается директива ngFor, построен из наблюдаемого.Эти значения меняются корректно.
Это мой HTML:
<gridster #dashboardgrid [options]="options" class="widget-container">
<gridster-item *ngFor="let widget of widgetList()" (mouseup)="setCurrentWidgetId(widget.id)" [item]="widget.position" class="gridster-design drag-handler">
<!-- some stuff-->
</gridster-item>
В моем ngOnInit
я подписываюсь из наблюдаемого:
this.dataService.currentDashboardId.subscribe(dashboardId => this.currentDashboardId = dashboardId);
this.dataService.currentSheetId.subscribe(sheetId => this.currentSheetId = sheetId);
this.dataService.projectData
.subscribe((project: Project) => {
this.project = project;
});
И вот метод, возвращающий list of widgets
, который должен отображаться:
widgetList(): Array<Widget> {
return this.project.dashboards
.find(x => x.id === this.currentDashboardId).sheets
.find(x => x.id === this.currentSheetId).widgets;
}
Я действительно не могу найти причинуза это поведение, так что, если кто-нибудь и я ценю это.Заранее спасибо.