Maison  >  Article  >  interface Web  >  analyse d'entrée et de sortie angulaire2

analyse d'entrée et de sortie angulaire2

小云云
小云云original
2018-01-25 12:00:511297parcourir

Cet article présente principalement la compréhension et des exemples d'angular2 ng2 @input et @output L'éditeur pense que c'est plutôt bon. Maintenant, je vais le partager avec vous et vous donner une référence. Suivons l'éditeur et jetons un œil. J'espère que cela pourra aider tout le monde.

angular2 @input et @output compréhension

Faites d'abord un exemple, puis fournissez le code

Par exemple :


<talk-cmp [talk]="someExp" (rate)="eventHandler($event.rating)">

input, [talk]="someExp" Cette balise peut être comprise comme un écouteur spécial qui écoute le paramètre someExp transmis par le composant parent et le stocke dans son propre composant. Le talk change ; il semble avoir ouvert une porte dérobée, permettant et autorisant uniquement l'entrée de certains éléments du composant parent. Une fois entré, il est immédiatement capturé dans une cellule appelée talk, puis le composant enfant peut définir le. la variable parle via @Input, puis utilisez-la.

output, (click)="eventHandler($event.rating) Cela signifie que lorsque l'événement click du composant enfant est déclenché, la fonction eventHandler du composant parent est exécutée et les paramètres du composant enfant $event. La note est transmise à la fonction eventHandler du composant parent ; tout comme lorsqu'un enfant pleure (exécute l'événement click), sa mère le tient immédiatement dans ses bras (exécute l'eventHandler de la mère), et en même temps le la mère obtient certains paramètres de l'enfant ( $event.rating)

1 @input()

Le composant parent mother.component.ts fournit des données


import {Component} from "@angular/core";
@Component({
  selector: "my-father",
  templateUrl: "father.html"
})
export class FatherComponent {
  data: Array<Object>;
  constructor() {
    this.data = [
      {
        "id": 1,
        "name": "html"
      },
      {
        "id": 2,
        "name": "css"
      },
      {
        "id": 3,
        "name": "angular"
      },
      {
        "id": 4,
        "name": "ionic"
      },
      {
        "id": 5,
        "name": "node"
      }
    ]
  }
}

Fichier modèle père.html


<h1>父组件</h1>
// 包含子组件, 并使用属性传递数据过去
<my-child [info]="data"></my-child>

Le sous-composant child.component.ts obtient des données


import {Component, Input} from "@angular/core";
@Component({
  selector: "my-child",
  templateUrl: "child.html"
})
export class ChildComponent {  
  // 使用@Input获取传递过来的数据
  @Input()
  info: Array<Object>;
  constructor() {
  
  }
}

Fichier modèle child.html du composant enfant


<ul>
  <li *ngFor="let item of info">
    {{item.name}}
  </li>
</ul>

2.

Composant enfant three-link.component.ts

1 Introduire


import {Component, OnInit, Output, EventEmitter} from "@angular/core";

2.


export class ThreeLinkComponent {
  province: string;
  // 输出一下参数
  @Output() provinceOut = new EventEmitter();  
  constructor() {
    this.province = "陕西";
  } 
}

3. L'événement est déclenché et les variables sont émises vers le composant parent


provinceChange() {
  // 选择省份的时候发射省份给父组件
  this.provinceOut.emit(this.province);
}

Modèle de composant parent


<!--三级联动组件-->
<three-link (provinceOut)="recPro($event)"></three-link>

Composant parent


// 函数接受子函数传递过来的变量, 子函数中emit的时候触发这个函数。
recPro(event) {
  this.province = event;
}

Recommandations associées :

Implémentation JS consistant à cliquer sur le menu déroulant pour sélectionner l'exemple de synchronisation du contenu avec la zone de saisie

JS clique sur le menu déroulant pour synchroniser le contenu sélectionné contenu dans la zone de saisie Méthode de mise en œuvre

Utiliser un exemple d'analyse du marquage de la balise de sortie Valeur de retour JavaScript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn