Angular 中的 dom 操作(原生 js)

ngAfterViewInit(){
var boxDom:any=document.getElementById('box');
boxDom.style.color='red';
}

对变量定义数据类型,防止编译报错

Angular 中的 dom 操作(ViewChild)

  1. 定义模板(模板引用)
<div #myattr></div>
  1. @ViewChild定义模板引用变量
import { Component ,ViewChild,ElementRef} from '@angular/core';
@ViewChild('myattr',{static:true}) eleRef: ElementRef;
ngAfterViewInit(){
let attrEl = this.eleRef.nativeElement;
}

myattr要与模板中的 #myattr对应,名字不能出错,eleRef是变量

父子组件中通过 ViewChild 调用子组件

  1. 调用子组件给子组件定义一个名称
<app-footer #footerChild></app-footer>
  1. 引入 ViewChild
import { Component, OnInit ,ViewChild} from '@angular/core';
  1. ViewChild 和刚才的子组件关联起来
@ViewChild('footerChild',{static:true}) footer;
  1. 调用子组件
run(){
this.footer.footerRun();
}

完整案例

  1. 模板
<app-header #header></app-header>

<div #myBox>
我是一个dom节点
</div> <button (click)="getChildRun()">获取子组件的方法</button>
  1. 逻辑定义
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;

												

最新文章

  1. ORACLE从共享池删除指定SQL的执行计划
  2. windows平台下基于VisualStudio的Clang安装和配置
  3. ios--个人资料修改
  4. lucene写索引出现锁文件的原因之一
  5. 《Linux 多线程服务端编程:使用 muduo C++ 网络库》电子版上市
  6. 汉诺塔(河内塔)算法 ----C语言递归实现
  7. 【C51】UART串口通信
  8. 关于Plupload结合上传插件jquery.plupload.queue的使用
  9. 获取IOS 设备基本信息
  10. React getInitialState desc
  11. KextWizard 的使用方法;以及Kext安装的几种工具下载
  12. CSS布局中——导航是非常常见的
  13. s3c6410学习笔记-烧写uboot+构建文件系统
  14. Android开发教程
  15. js获取客户端MAC地址
  16. 图论分支-Tarjan初步-点双连通分量
  17. python之vscode配置开发调试环境
  18. C# PictureBox控件畫圖
  19. Linux开机启动时执行脚本的方法
  20. 实现session(session数据)的共享,解决分布式session共享

热门文章

  1. cf 12C Fruits(贪心【简单数学】)
  2. JMH 使用指南
  3. selenium2.x 与 selenium3.x 最大区别
  4. postman使用(待更新)
  5. flask gevent
  6. 设计模式学习-使用go实现装饰模式
  7. 表现层(jsp)、持久层(dao)、业务层(逻辑层、service)
  8. C#与dotNET项目想要另存为一个新项目sln文件丢了怎么办
  9. 保姆级别的vue + ElementUI 搭建后台管理系统教程
  10. 第一个vue程序