我在获取动态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();
}