gpt4 book ai didi

javascript - 我可以在不使用模板中的 `#` 的情况下访问 native DOM 元素吗

转载 作者:行者123 更新时间:2023-11-30 15:31:50 24 4
gpt4 key购买 nike

我可以像这样使用 @ViewChildren 装饰器访问组件 View 中的组件:

@Component({
selector: 'my-app',
template: `
<alert type="info"></alert>
`,
})
export class App {
@ViewChildren(AlertComponent) alerts: QueryList<AlertComponent>

除了在模板中使用 # 符号之外,还有什么方法可以使用 @ViewChildren 装饰器 访问 DOM 元素?也许是某种读取参数风格?

  selector: 'my-app',
template: `
<div #divElement>Tada!</div>
`,
})

@ViewChild("divElement") div: any;

如果不可能,请在评论或回答中提及。只是想确定地知道。

最佳答案

ViewChild 装饰器仅适用于 ComponentRefref-variable。第二个参数对已经查询的元素起作用。这里给出了一个很好的答案:

https://stackoverflow.com/a/35209681/324224

ViewChild 是如何实现的可以在 Angular 仓库中看到:

https://github.com/vicb/angular/blob/master/modules/@angular/core/src/metadata/di.ts#L353

并且基于文档和测试:

https://github.com/angular/angular/blob/14ee75924b6ae770115f7f260d720efa8bfb576a/modules/%40angular/core/test/metadata/di_spec.ts

我很确定只支持两种选择器类型 - ComponentRefref-variable。

关于javascript - 我可以在不使用模板中的 `#` 的情况下访问 native DOM 元素吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42130365/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com