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;

												

Angular @ViewChild,Angular 中的 dom 操作的更多相关文章

  1. 【Java EE 学习 32 下】【JQuery】【JQuey中的DOM操作】

    一.JQuery中的DOM操作. 什么是DOM:DOM是一中和浏览器.平台.语言无关的接口,使用该接口可以轻松访问页面中所有的标准组件.DOM简称文档对象模型,是Document Oject Mode ...

  2. dom core,html dom,css dom,jquery 中的dom操作

    前端开发中为达到某种目的,往往有很多方法:dom core,html dom,jquery; dom core/jquery主要通过函数调用的方式(getAttribute("属性名&quo ...

  3. jQuery中的DOM操作<思维导图>

    DOM是Document Object Model的缩写,意思是文档对象模型.DOM是一种与浏览器.平台.语言无关的接口.使用该接口可以轻松地访问页面中所有的标准组件.简单来说,DOM解决了Netsc ...

  4. Jquery:jquery中的DOM操作<一>

    之前两天学习了Jquery强大的选择器,今天学习了一部分Jquery对DOM的操作,下面我将把自己今天的成果分享给大家,那些菜鸟们,你们是否需要巩固之前所学? 首先需要知道,DOM操作分为3个方面:D ...

  5. jQuery中的DOM操作总结

    jQuery中的DOM操作 DOM是Document Object Medel的缩写,它的意思是文档对象模型,根据W3C的官方说法,DOM是一种跟浏览器,平台以及语言都没有关系的一种规范,也就是一种接 ...

  6. jQuery中的DOM操作《思维导图》

    首先,是关于jQuery中的DOM操作的<思维导图>,请点击这里:jQuery中的DOM操作 列表框的左右选项移动 <html> <head> <title& ...

  7. 第三章(jQuery中的DOM操作)

    3.1 DOM 操作分类 ①DOM Core 包括(getElementById() , getElementsByTagName() , getAttribute() , setAttribute( ...

  8. JavaWeb学习笔记——jquery中的dom操作

     jquery中的dom操作 废话不说:直接上例子: 1.添加节点-html页面 Append:向每个匹配的元素内部追加内容. <body> <ul id="city& ...

  9. js中的DOM操作汇总

    一.DOM创建 DOM节点(Node)通常对应于一个标签,一个文本,或者一个HTML属性.DOM节点有一个nodeType属性用来表示当前元素的类型,它是一个整数: Element,元素 Attrib ...

随机推荐

  1. Tarjan算法 求 有向图的强连通分量

    百度百科 https://baike.baidu.com/item/tarjan%E7%AE%97%E6%B3%95/10687825?fr=aladdin 参考博文 http://blog.csdn ...

  2. hdu 3635 Dragon Balls(并查集)

    题意: N个城市,每个城市有一个龙珠. 两个操作: 1.T A B:A城市的所有龙珠转移到B城市. 2.Q A:输出第A颗龙珠所在的城市,这个城市里所有的龙珠个数,第A颗龙珠总共到目前为止被转移了多少 ...

  3. 装了这几个IDEA插件,基本上一站式开发了!

    前言 前几天有社区小伙伴私聊我,问我都用哪些IDEA插件,我的IDEA的主题看起来不错. 作为一个开源作者,每周要code大量的代码,提升日常工作效率是我一直追求的,在众多的IDEA插件中,我独钟爱这 ...

  4. Oracle中对数字加汉字的排序

    需求:有一列NAME, varchar2类型,内容如下 以上就是已经按order by name进行排序的,但不是我们想要的结果 现在需要只按数字进行排序 第一步:抽取数字由于数字有是一位的有是两位的 ...

  5. dart系列之:dart类中的构造函数

    目录 简介 传统的构造函数 命名构造函数 构造函数的执行顺序 重定向构造函数 Constant构造函数 工厂构造函数 总结 简介 dart作为一种面向对象的语言,class是必不可少的.dart中所有 ...

  6. Java学习(十七)

    Java多态的学习差不多有3个小时,老师还夹杂着一些编译器运用的知识. 这是多态的基本知识: 我们可以创建父类引用指向子类对象,这就是多态的一种.(这种也叫向下转型) Pet c=new Cat(); ...

  7. Python进阶(装饰器)

    from datetime import datetime def log(func):#func表示装饰器作用于的函数 def wrapper(*args,**kw):#wrapper返回装饰器作用 ...

  8. ESP32-S3 搭建 micropython 开发环境,固件编译,烧录

    简述 上手了一块乐鑫科技官方推出的ESP32-S3-DevKitC-1开发板,发现 ESP32-S3 的综合性能较比前两代有着非常明显的提升,wifi与蓝牙功能,更充足的外设扩展能力,可以看出其在未来 ...

  9. cesium开发(1)搭建 vue + cesium开发环境

    进入新公司一段时间了,新公司业务主要从事卫星方面等webgl的开发,主要使用了leafletjs和cesium,其中cesium难度较大,需求较多,再进行了一段时间的使用开发后依旧感到有些力不从心, ...

  10. linux安全 设置登录失败次数后,拒绝登录

    设置登录失败3次后锁定用户300秒可以通过配合文件/etc/pam.d/sshd配置如下 在第一行 #%PAM-1.0 的下一行添加1a auth required pam_tally2.so den ...