角动态组件更改检测不起作用

时间:2018-11-28 00:06:06

标签: angular leaflet

我在获取动态Angular组件以触发更改检测时遇到问题。

我试图遵循https://juristr.com/blog/2017/11/dynamic-angular-components-for-rendering-html/本教程。我成功地显示了动态组件(是的,我也在使用传单)。但是,当我要更新组件(弹出窗口)并且使用以下代码行(如下)时,此“数据”字段的确会更新为新值,但组件从未更新视图上的值。任何帮助,将不胜感激。

updateIcon(markerLayer, color, i, sign?) {
    console.log('icon updates');
    const newNbOffset = this.elccMapLogicService.getPopupOffset(i, this.currentPopupOffset);
    const newIcon = L.icon({
        iconSize: [this.currentMarkerSize, this.currentMarkerSize],
        iconAnchor: this.currentIconOffset,
        iconUrl: 'assets/map_features/markers/sign-' + color + '.png',
        popupAnchor: [-newNbOffset[0], newNbOffset[1]]
    });
    markerLayer.setIcon(newIcon);
    if (sign) {
        this.northBoundMarkerComponents.forEach(component => {
            if (sign.plazaId === component.id) {

                component.componentInstance.data = sign;

                component.componentInstance.instance.cd.detectChanges();
            }
        });
    }
    markerLayer.getPopup().update();
}

0 个答案:

没有答案