您的位置是:网站首页>Javascript编程Javascript编程

浅谈Angular中的DOM操作

少儿编程网2021-09-27 14:04:38Javascript编程 人已围观 来源:少儿编程 -用户投稿

简介本篇文章给大家介绍一下Angular中的DOM操作。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。相关推荐:《angular教程》一、Angular中的Dom操作以及@ViewChild、Angular执行css3动画1.1原生js的dom操作以及动画演示组件:appcompon

本篇文章给大家介绍一下Angular中的DOM操作。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。voP少儿编程网-https://www.pxcodes.com

voP少儿编程网-https://www.pxcodes.com

相关推荐:《angular教程》voP少儿编程网-https://www.pxcodes.com

一、 Angular 中的 Dom 操作以及@ViewChild、 Angular 执行 css3 动画

1.1 原生js的 dom 操作以及动画

演示组件:appcomponents ransition
HTMLvoP少儿编程网-https://www.pxcodes.com

<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:voP少儿编程网-https://www.pxcodes.com

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)";

}

1.2 Angular 中的 dom 操作(ViewChild)

ViewChild:属性装饰器voP少儿编程网-https://www.pxcodes.com

演示文件: gDemosrcappcomponents ewsvoP少儿编程网-https://www.pxcodes.com

1、现在组件模板文件定义属性 ,通过#
voP少儿编程网-https://www.pxcodes.com

<div #myBox>
   我是一个dom节点
</div>

2、现在组件ts通过ViewChild 获取domvoP少儿编程网-https://www.pxcodes.com

<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操作的详细内容,更多请关注少儿编程网其它相关文章!voP少儿编程网-https://www.pxcodes.com

来源:php中文网voP少儿编程网-https://www.pxcodes.com


相关文章:

支持一下 ( )

浅谈Angular中的DOM操作

      匿名评论
    • 评论
    人参与,条评论
    浅谈Angular中的DOM操作

微信公众号

免费视频教程

先知道