Angular7+primeNg,父组件传值给子组件,子组件通过ngOnChanges()来截听父组件值的变化

1 篇文章 0 订阅
1 篇文章 0 订阅

需要的功能:父组件中有个表格,通过点击不同的表格,旁边显示不同的数据树
父组件html:

<p-table [columns]="cols" [value]="tables" selectionMode="single" (click)="sendMsg(selectedTable.Name)"  [(selection)]="selectedTable" dataKey="Name" >

主要是添加sendMsg(selectedTable.Name)这个点击函数,获取selectedTable.Name选中的值,
父组件component.ts:

 //点击触发事件,改变父子组件传输的msg值
 tabname:any;
 msg:any;
  sendMsg(tabname){
      this.msg=tabname;
      alert('table点击后的msg值是'+this.msg)
      return this.msg;
  }

通过点击事件改变msg的值。
子组件HTML:

<h3 class="first">PAT(TSID:1)</h3>
    <p-tree [value]="filesTree0"></p-tree>

直接读取数据
子组件component.ts:

//引入input(接收父组件的值),[OnChanges,SimpleChange(监听值变化)](https://angular.cn/guide/component-interaction)
import { Component, OnInit,Input,OnChanges,SimpleChange,ViewChild } from '@angular/core';

@Input() msg:string;

ngOnChanges(changes: {[msg: string]: SimpleChange}) {
        alert('点击触发之后的onchang中msg是'+this.msg);
        if(this.msg=='PAT'){
            this.nodeService.getFiles().then(files => this.filesTree0 = files);
        }
        else if(this.msg=='PMT'){
            this.nodeService.gePmtFiles().then(files => this.filesTree0 = files);
        }
      }

nodeService及json数据可自行构建
自己琢磨有点慢,没关系,有进步就好

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值