Angular day3 父子模块通信

只是加强自己的记忆,目前来说只适用于自己。

ngx-datatable 一个ng的表格组件
请求会来的数据回显页面赋值:

[rows]="orders"  
//orders是接受后端发送的数据
//这是ng中传值的方法
//写在ngx-datatable  这个标签中

父子模块通信:@ViewChild和@Inject

一、@ViewChild
父组件中使用@ViewChild拿到子组件的变量和方法(父组件可调用子组件的方法和变量)

//父组件文件夹中:
export class ParentComponent implements OnInit {
  //通过@ViewChild注册子组件
  @ViewChild(ChildComponent) public child:ChildComponent;
  
  public countNum: number;
  public firstName:string = "Jeck";
  public fullName:string = "";
  constructor() {}
  
  ngOnInit(): void {
    
  }
  displayFull(){
    this.fullName = this.firstName + this.child.lastName;
   console.log(this.fullName)  //"Jeck wang"  
  }


//子组件文件中
import { Component, OnInit} from '@angular/core';

@Component({
  selector: 'my-child',
  templateUrl: './child.component.html',
  styleUrls: [ './child.component.css' ],
})
export class ChildComponent implements OnInit {
  public lastName:string = "wang";  //这里赋值
  
  constructor() {}
  
  ngOnInit(): void {
    
  }

}

二、@Inject

子组件中使用@Inject调用父组件中的变量和方法


//父组件
import { Component, OnInit } from '@angular/core';

@Component({
  selector: 'my-parent',
  templateUrl: './parent.component.html',
  styleUrls: [ './parent.component.css' ],
})
export class ParentComponent implements OnInit {
  
  constructor() {}
  
  ngOnInit(): void {
    
  }
  sayHello(){
    console.log("Hello!")
  }
}



//子组件
import { Component, OnInit, Inject, forwardRef} from '@angular/core';
import { ParentComponent } from './parent.component';

@Component({
  selector: 'my-child',
  templateUrl: './child.component.html',
  styleUrls: [ './child.component.css' ],
})
export class ChildComponent implements OnInit {
  
  constructor(
    @Inject(forwardRef(()=>ParentComponent)) public parent:ParentComponent
  ) {}
  
  ngOnInit(): void {
    this.parent.sayHello();   //"Hello!"
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值