Angular @ViewChild,Angular 中的 dom 操作
2021/8/17 6:08:19
本文主要是介绍Angular @ViewChild,Angular 中的 dom 操作,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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;
这篇关于Angular @ViewChild,Angular 中的 dom 操作的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-15PingCAP 黄东旭参与 CCF 秀湖会议,共探开源教育未来
- 2024-05-13PingCAP 戴涛:构建面向未来的金融核心系统
- 2024-05-09flutter3.x_macos桌面os实战
- 2024-05-09Rust中的并发性:Sync 和 Send Traits
- 2024-05-08使用Ollama和OpenWebUI在CPU上玩转Meta Llama3-8B
- 2024-05-08完工标准(DoD)与验收条件(AC)究竟有什么不同?
- 2024-05-084万 star 的 NocoDB 在 sealos 上一键起,轻松把数据库编程智能表格
- 2024-05-08Mac 版Stable Diffusion WebUI的安装
- 2024-05-08解锁CodeGeeX智能问答中3项独有的隐藏技能
- 2024-05-08RAG算法优化+新增代码仓库支持,CodeGeeX的@repo功能效果提升