首页 > 解决方案 > 在 Angular 但没有 @ViewChild 的情况下查询 Dom 元素(DIV id 或类)

问题描述

我想在 Angular 中查询一个 dom 元素,我不能使用 @ViewChild 装饰器,因为 html 是通过另一个小部件呈现的。所以我想做类似的事情:

let target = document.querySelector(".domelement");
target.style.width = "100%";

我会将它包装在一个函数中并在 onInit 方法中实现它。

有任何想法吗?

标签: javascriptangular

解决方案


您可以以角度方式执行以下操作。Angular 中不建议直接访问 DOM

import { DOCUMENT } from '@angular/common';
import {  Renderer2, Inject } from '@angular/core';

...

 constructor(
    @Inject(DOCUMENT) private document,
    private renderer: Renderer2
  ) {}

...

ngAfterViewInit() {
 this.renderer.setStyle(this.document.querySelector(".domelement"), 'width', '100%');
}


推荐阅读