Angular @ViewChild,Angular 中的 dom 操作
2024-10-19 15:40:44
Angular 中的 dom 操作(原生 js)
ngAfterViewInit(){
var boxDom:any=document.getElementById('box');
boxDom.style.color='red';
}
对变量定义数据类型,防止编译报错
Angular 中的 dom 操作(ViewChild)
- 定义模板(模板引用)
<div #myattr></div>
- @ViewChild定义模板引用变量
import { Component ,ViewChild,ElementRef} from '@angular/core';
@ViewChild('myattr',{static:true}) eleRef: ElementRef;
ngAfterViewInit(){
let attrEl = this.eleRef.nativeElement;
}
myattr要与模板中的 #myattr对应,名字不能出错,eleRef是变量
父子组件中通过 ViewChild 调用子组件
- 调用子组件给子组件定义一个名称
<app-footer #footerChild></app-footer>
- 引入 ViewChild
import { Component, OnInit ,ViewChild} from '@angular/core';
- ViewChild 和刚才的子组件关联起来
@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();
}
}
Angular8 需要添加 {static:boolean}
属性,必填
//获取header组件
@ViewChild('header',{static:true}) header:any;
最新文章
- ORACLE从共享池删除指定SQL的执行计划
- windows平台下基于VisualStudio的Clang安装和配置
- ios--个人资料修改
- lucene写索引出现锁文件的原因之一
- 《Linux 多线程服务端编程:使用 muduo C++ 网络库》电子版上市
- 汉诺塔(河内塔)算法 ----C语言递归实现
- 【C51】UART串口通信
- 关于Plupload结合上传插件jquery.plupload.queue的使用
- 获取IOS 设备基本信息
- React getInitialState desc
- KextWizard 的使用方法;以及Kext安装的几种工具下载
- CSS布局中——导航是非常常见的
- s3c6410学习笔记-烧写uboot+构建文件系统
- Android开发教程
- js获取客户端MAC地址
- 图论分支-Tarjan初步-点双连通分量
- python之vscode配置开发调试环境
- C# PictureBox控件畫圖
- Linux开机启动时执行脚本的方法
- 实现session(session数据)的共享,解决分布式session共享