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 :
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!