zoukankan      html  css  js  c++  java
  • angular @Input() 和 @Output()

    创建 Student class

    就只有几个简单的属性(执行下面的属性可以快速生成)
    ng generate class entity/student

    export class Student {
        id: number;
        name: string;
        age: number;
    }
    

    创建child component

    ts

    import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core';
    import { Student } from '../entity/student';
    @Component({
      selector: 'app-child',
      templateUrl: './child.component.html',
      styleUrls: ['./child.component.css']
    })
    export class ChildComponent implements OnInit {
      @Input() stu: Student;
      @Output() deleteEvent = new EventEmitter<number>();
      constructor() { }
      ngOnInit() {
      }
      delete(id) {
        this.stu = null;
        this.deleteEvent.emit(id);
      }
    }
    

    html

    <p *ngIf="stu">
      {{stu.id}} -- {{stu.name}} -- {{stu.age}}  <button (click)="delete(stu.id)">delete</button>
    </p>
    

    修改 app.component

    ts

    import { Component } from '@angular/core';
    import { Student } from './entity/student';
    @Component({
      selector: 'app-root',
      templateUrl: './app.component.html',
      styleUrls: ['./app.component.css']
    })
    export class AppComponent {
      stus: Student[] = [
        {id: 1, name: '里斯', age: 3},
        {id: 2, name: '里斯2', age: 4},
        {id: 3, name: '里斯3', age: 5},
      ];
      stu: Student;
      constructor() {
      }
      selected(stu) {
        this.stu = stu;
      }
      deleteStu(id: number) {
        this.stus.forEach((val, index) => {
          if ( val.id === id) {
            this.stus.splice(index, 1);
            return;
          }
        });
      }
    }
    

    html

    <div>
      <ul>
        <li *ngFor="let stu of stus" (click)="selected(stu)"> {{stu.id}} -- {{stu.name}} -- {{stu.age}} </li>
      </ul>
    </div>
    <app-child [stu]="stu" (deleteEvent)="deleteStu($event)"></app-child>
    

    @Input() 很简单,就是将父组件的数据给子组件的一个属性;
    @Output() 子组件创建一个 EventEmitter, 子组件的操作会触发EventEmitter ,然后将这个 EventEmitter 对象赋值给 父组件的一个 method ,改方法会拿到EventEmitter对象给的参数,然后进行处理;

  • 相关阅读:
    Oracle插入特殊字符问题
    Oracle数据库中IN参数个数超过1000的问题
    解决tomcat 内存溢出问题
    IDEA 最新版本 破解教程(windows,mac皆可用)(新版本已失效)
    javascript将字符串中的多个空格替换为一个空格的正则实例
    删除一个表中重复的数据
    mac/linux 解决启动命令行出现declare问题
    iftop 安装以及相关参数及说明(转载自csdn)
    centos安装与卸载postgresql
    jquery实现自动补全邮箱地址
  • 原文地址:https://www.cnblogs.com/Godfunc/p/9842444.html
Copyright © 2011-2022 走看看