您好,登录后才能下订单哦!
密码登录
            
            
            
            
        登录注册
            
            
            
        点击 登录注册 即表示同意《亿速云用户服务条款》
        这篇文章主要介绍Angular中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节点
     /*
      let oBox1:any=document.getElementById('box1');
      console.log(oBox1.innerHTML);
      oBox1.style.color="blue";
     
     */
  }
     //视图加载完成以后触发的方法    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)";
}ViewChild:属性装饰器
演示文件:\ngDemo\src\app\components\news
1、现在组件模板文件定义属性 ,通过#
<div #myBox> 我是一个dom节点 </div>
2、现在组件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操作的示例”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。