簡體   English   中英

樣式動態創建Angular組件

[英]Style dynamically created Angular component

是否可以在Angular4中設置動態創建的組件的樣式? 我有下一個代碼:

createComponent(event) {
    let componentFactory = this.componentFactoryResolver.resolveComponentFactory(SbImageGalleryPinComponent);

    let componentRef = this.pin.createComponent(componentFactory);

    document.querySelector('.sb-component-gallery__container').addEventListener('mousemove', this.onMouseMove.bind(this));
}

onMouseMove(event) {
    // ????
}

所以我想創建組件,然后相對於鼠標設置左側和頂部位置。 我正在創建對鼠標來說很粘的組件。 是否有可能重現我需要的邏輯?

您可以在動態添加的組件中添加如下所示的主機綁定,然后在創建組件后為綁定屬性分配值:

@HostBinding('style.left.px')
left:number;

@HostBinding('style.top.px')
top:number;
componentRef.instance.left = 50;
componentRef.instance.top = 30;

可能有必要打電話

componentRef.changeDetectorRef.detectChanges();

之后也是如此。

另請參見https://angular.io/api/core/ComponentRef

  componentRef.location.nativeElement.style = `
    left: 50px;
    top: 30px;
  `;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM