zoukankan      html  css  js  c++  java
  • angular6之父子组件通信

    父组件向子组件传入数据

    例如将父组件的user对象传入子组件additem中
    <app-additem [user]=”user" #additem></app-additem>
    1、将父组件的user对象传入子组件additem中,组件模板中绑定属性[user]
    2、子组件中类中先导入user对象,之后就可以在组件中直接使用该对象
    @Input () user;

    父组件访问子组件的方法和数据
    方法一:
    <button (click)="additem.add()" nz-button type="primary">添加</button>
    <app-addItem [user]=“user #additem></app-addItem>
    通过在子组件标签上加上属性#<name>,那么在组件模板中就可以直接通过该名称调用子组件里的方法和属性。但是这种写法有局限性,只能在html模板中使用,父组件本身的ts代码中并不能使用

    方法二:
    父组件ts代码中调用子组件的方法和属性。
    首先导入模块ViewChild。
    import {ViewChild } from '@angular/core';
    在父组件的类中将子组件作为viewChild注入到父组件中
    @ViewChild(AdditemComponent)
    private additem: AdditemComponent
    在父组件的方法中就可以通过this.additem[方法/属性名]来调用子组件的方法或属性数据

    子组件调用父组件的方法

    子组件导出 EventEmitter 属性,通过emits方法,触发父组件中绑定的该属性的事件。
    具体用法:
    子组件中引入EventEmitter和Output 模块
    import { EventEmitter, Output } from '@angular/core';
    定义输出:
    @Output() addItem = new EventEmitter();

    触发:
    this.addItem.emit(this.user);
    父组件定义addItem事件
    <app-addItem (addItem)="onAdditem($event)"></app-addItem>
    当子组件emit触发父组件的自定义事件addItem时,会触发父组件的onAdditem方法

  • 相关阅读:
    Java第四章课后整理
    java第三章课后作业1
    Java第三章整理
    JAVA第二章课后作业
    JAVA第二章整理
    java课后作业1
    JAVA第一章整理实验
    JAVA大道至简第一章伪代码
    文本数据特征选取的四种方法
    时域分析与频率分析的比较
  • 原文地址:https://www.cnblogs.com/leejay6567/p/9388228.html
Copyright © 2011-2022 走看看