温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

angular父子组件通信的示例分析

发布时间:2021-12-22 17:08:41 来源:亿速云 阅读:105 作者:小新 栏目:开发技术

这篇文章主要介绍angular父子组件通信的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!

    用到的api

    Input - 子组件中定义可接受的属性,可以用来父组件给子组件传递数据

    Output - 子组件中定义输出的属性,该属性需要是 EventEmitter 的事件类型,用来通知父组件做出相应的操作

    EventEmitter - 用在带有 @Output 指令的组件中,以同步或异步方式发出自定义事件,并通过订阅实例来为这些事件注册处理器。

    简单的例子

    列表渲染子组件,点击子组件通知父组件进行操作

    person.ts

    export interface Person {
      name: string;
      age: number;
      sex: string;
    }

    父组件

    import { Component, OnInit } from '@angular/core';
    import { Person } from './person';
    @Component({
      selector: 'app-comp-parent',
      template: `
        <app-comp-child
          *ngFor="let person of personList"
          (itemClick)="onItemClick($event)"
          [data]="person"
        ></app-comp-child>
      `,
    })
    export class CompParentComponent implements OnInit {
      personList: Person[] = [
        { name: '张三', age: 21, sex: '男' },
        { name: '李四', age: 25, sex: '男' },
        { name: '李莉', age: 20, sex: '女' },
      ];
      constructor(){ }
      ngOnInit(): void { }
      onItemClick(item: Person){
        console.log('click-person: ', item);
      }
    }

    子组件

    import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';
    import { Person } from './person';
    @Component({
      selector: 'app-comp-child',
      template: `
        <div (click)="itemClick.emit(data)">
          Name: {{ data.name }}
          Age: {{ data.age }}
          Sex: {{ data.sex }}
        </div>
      `,
    })
    export class CompChildComponent implements OnInit {
      @Input() data!: Person;
      @Output() itemClick = new EventEmitter();
      constructor(){ }
      ngOnInit(): void { }
    }

    效果

    angular父子组件通信的示例分析

    以上是“angular父子组件通信的示例分析”这篇文章的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!

    向AI问一下细节

    免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

    AI