我正在实践工作中与angular4合作,这对我来说是新的。
为了获得HTML元素及其值,我使用了<HTMLInputElement> document.getElementById
或<HTMLSelectElement> document.getElementById
。
我想知道是否有任何角度上的替代。
发布于 2018-01-12 05:09:05
您可以使用#someTag
标记DOM元素,然后使用@ViewChild('someTag')
获取它。
参见完整的示例:
import {AfterViewInit, Component, ElementRef, ViewChild} from '@angular/core';
@Component({
selector: 'app',
template: `
<div #myDiv>Some text</div>
`,
})
export class AppComponent implements AfterViewInit {
@ViewChild('myDiv') myDiv: ElementRef;
ngAfterViewInit() {
console.log(this.myDiv.nativeElement.innerHTML);
}
}
console.log
将打印一些文本。
发布于 2018-01-12 05:06:56
您只需将DOCUMENT令牌注入构造函数并在其上使用相同的函数即可。
import { Inject } from '@angular/core';
import { DOCUMENT } from '@angular/common';
@Component({...})
export class AppCmp {
constructor(@Inject(DOCUMENT) document: Document) {
document.getElementById('el');
}
}
或者,如果要获取的元素位于该组件中,则可以使用template references。
发布于 2019-07-07 17:54:27
角8或后置@ViewChild的有一个名为opts的附加参数,它具有两个属性: read和static,read是可选的。您可以这样使用它:
import { ElementRef, ViewChild } from '@angular/core';
// ...
@ViewChild('mydiv', { static: false }) public mydiv: ElementRef;
constructor() {
// ...
<div #mydiv></div>
注意:在角9中不再需要静态: false。(当您要在{ static: true }
内部使用该变量时,只需要使用ngOnInit)。
https://stackoverflow.com/questions/48226868
复制相似问题