Angular中DOM操作的示例
短信预约 -IT技能 免费直播动态提醒
这篇文章主要介绍Angular中DOM操作的示例,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
一、 Angular 中的 Dom 操作以及@ViewChild、 Angular 执行 css3 动画
1.1 原生js的 dom 操作以及动画
演示组件:app\components\transition
HTML
<div class="content"> <p>内容区域</p> <div id="box"> this is box </div> <br> <div id="box1" *ngIf="flag"> this is box1 </div> <button (click)="showAside()">弹出侧边栏</button> <button (click)="hideAside()">隐藏侧边栏</button> </div> <aside id="aside"> 这是一个侧边栏 </aside>
组件ts:
public flag:boolean=true; constructor() { } ngOnInit(): void { //组件和指令初始化完成 并不是真正的dom加载完成 let oBox:any=document.getElementById('box'); console.log(oBox.innerHTML); oBox.style.color="red"; //获取不到dom节点 } //视图加载完成以后触发的方法 dom加载完成 (建议把dom操作放在这个里面) ngAfterViewInit(){ let oBox1:any=document.getElementById('box1'); console.log(oBox1.innerHTML); oBox1.style.color="blue"; } showAside(){ //原生js获取dom节点 var asideDom:any=document.getElementById('aside'); asideDom.style.transform="translate(0,0)"; }hideAside(){ //原生js获取dom节点 var asideDom:any=document.getElementById('aside'); asideDom.style.transform="translate(100%,0)";}
1.2 Angular 中的 dom 操作(ViewChild)
ViewChild:属性装饰器
演示文件:\ngDemo\class="lazy" data-src\app\components\news
现在组件模板文件定义属性 ,通过#
<div #myBox> 我是一个dom节点</div>
现在组件ts通过ViewChild 获取dom
<div #myBox>我是一个dom节点</div><app-header #header></app-header><button type="button" (click)='getChildProp()'>获取子组件header的属性</button><button type="button" (click)='getChildMethod()'>获取子组件header的方法</button>
import { Component, OnInit, ViewChild } from '@angular/core';@Component({ selector: 'app-news', templateUrl: './news.component.html', styleUrls: ['./news.component.less']})export class NewsComponent implements OnInit { //获取Dom @ViewChild('myBox') public myBoxIn: any; @ViewChild('header') public header: any; constructor() { } ngOnInit(): void { // console.log(this.myBoxIn) } //处理dom节点 ngAfterViewInit() { console.log(this.myBoxIn.nativeElement) //父组件获取到了整个子组件header console.log('父组件获取到了整个子组件header') console.log(this.header) } //获取子组件header的属性 getChildProp() { console.log(this.header.title) } //获取子组件header的方法 getChildMethod() { console.log(this.header.headRun) this.header.headRun(); }}// 父组件 news 引入 <app-header #header></app-header>// 子组件 header// 父组件 得到 子组件的 数据 和 方法 --- 子组件 传 值给父组件 // 总结:// 1. 父组件中调用子组件的时候, 给子组件一个名称// <app-header #header></app-header>// 2. 在父组件引入viewChild// import { Component, OnInit,ViewChild } from '@angular/core';// @ViewChild('header')// public header:any;// 3. 已经可以在父组件调用子组件的属性和方法了// 父组件传值给子组件 @input -- 子组件 得到 父组件的 数据 和 方法 // 父组件: home// 子组件: header
以上是“Angular中DOM操作的示例”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注编程网行业资讯频道!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341