欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

無法在ngOnChanges中設置nativeElement.style.width

李中冰1年前8瀏覽0評論

我試圖設置這些容器的寬度,但是我還需要觀察@Input的變化,因為DOM會根據@Input發生變化

@Input('connections') public connections = [];

@ViewChildren('containers', { read: ElementRef }) chipContainers: QueryList<ElementRef>;

這個@Input的值可以改變,所以我需要使用ngOnChanges

public ngOnChanges() {
    if (this.connections) {
      const containerArr = this.containers.toArray();

      if (containerArr.length) {
        containerArr.forEach((container) => {
          const child = container.nativeElement.children;

          if (child.length) {
            const baseWidth = child[0].clientWidth + 100; // omitted calc to find baseWidth

            container.nativeElement.style.width = `${baseWidth}px`;
          }
        });
      }
    }
  }

似乎在設置container . native element . style . width后,更改沒有正確呈現,因為我可以在console.log它時看到新的寬度值。

嘗試了this . renderer . set style(chip container . native element,' width ',` $ { base width } px `); 但由于某種原因,這也不起作用

一個可能的解決方案是使用AfterViewInit生命周期掛鉤而不是ngOnChanges,以確保在試圖修改容器的寬度之前完全呈現DOM。