ngAfterViewInit(){ var boxDom:any=document.getElementById(‘box‘); boxDom.style.color=‘red‘; }
对变量定义数据类型,防止编译报错
<div #myattr></div>
import { Component ,ViewChild,ElementRef} from ‘@angular/core‘;
@ViewChild(‘myattr‘,{static:true}) eleRef: ElementRef;
ngAfterViewInit(){
let attrEl = this.eleRef.nativeElement;
}
myattr要与模板中的 #myattr对应,名字不能出错,eleRef是变量
<app-footer #footerChild></app-footer>
import { Component, OnInit ,ViewChild} from ‘@angular/core‘;
@ViewChild(‘footerChild‘,{static:true}) footer;
run(){ this.footer.footerRun(); }
<app-header #header></app-header> <div #myBox> 我是一个dom节点 </div> <button (click)="getChildRun()">获取子组件的方法</button>
import { Component, OnInit,ViewChild} from ‘@angular/core‘;
@Component({
selector: ‘app-news‘,
templateUrl: ‘./news.component.html‘,
styleUrls: [‘./news.component.scss‘]
})
export class NewsComponent implements OnInit {
//获取dom节点
@ViewChild(‘myBox‘,{static:true}) myBox:any;
//获取一个组件
@ViewChild(‘header‘,{static:true}) header:any;
constructor() { }
ngOnInit() {
}
ngAfterViewInit(): void {
console.log(this.myBox.nativeElement);
this.myBox.nativeElement.style.width=‘100px‘;
this.myBox.nativeElement.style.height=‘100px‘;
this.myBox.nativeElement.style.background=‘red‘;
console.log(this.myBox.nativeElement.innerHTML);
}
getChildRun(){
//调用子组件里面的方法
this.header.run();
}
}
{static:boolean}属性,必填//获取header组件 @ViewChild(‘header‘,{static:true}) header:any;
Angular @ViewChild,Angular 中的 dom 操作
原文:https://www.cnblogs.com/magicg/p/15150630.html