介绍
使用Angular4怎么实现组件通讯?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强> 1。父→子输入强>
家长。ts
import {, Component },得到& # 39;@angular/核心# 39;; @ component ({ ,选择器:& # 39;page-parent& # 39; ,templateUrl: & # 39; parent.html& # 39; }) export class  ParentPage { 我:大敌;number =, 0; ,构造函数(){ setInterval(才能(),=祝辞,{ 莞,,+ +; ,,},1000) ,} }
家长。html
& lt; ion-header> ,& lt; ion-navbar> & lt;才能ion-title> Parent</ion-title> ,& lt;/ion-navbar> & lt;/ion-header> & lt; ion-content  padding> ,& lt; h3> Parent ,& lt; page-child [内容]=拔易4? lt;/page-child> & lt;/ion-content>
孩子。ts
import {,组件,Input },得到& # 39;@angular/核心# 39;; @ component ({ ,选择器:& # 39;page-child& # 39; ,templateUrl: & # 39; child.html& # 39; }) export class  ChildPage { @Input(),内容:字符串; ,构造函数(){ ,} }
孩子。html
& lt; ion-content padding> 孩子:{{内容}} & lt;/ion-content>
结果:
<强> 2。子→父输出强>
家长。ts
import {, Component },得到& # 39;@angular/核心# 39;; @ component ({ ,选择器:& # 39;page-parent& # 39; ,templateUrl: & # 39; parent.html& # 39; }) export class  ParentPage { 我:大敌;number =, 0; ,numberIChange(我:数字){ ,,this.i =,我; ,} }
家长。html
& lt; ion-header> ,& lt; ion-navbar> & lt;才能ion-title> Parent</ion-title> ,& lt;/ion-navbar> & lt;/ion-header> & lt; ion-content  padding> ,& lt; h3>父:{{我}}& lt;/h3> ,& lt; page-child (changeNumber)=皀umberIChange(事件)美元“祝辞& lt;/page-child> & lt;/ion-content>
孩子。ts
import {组件的不同之处是,EventEmitter, Output },得到& # 39;@angular/核心# 39;; @ component ({ ,选择器:& # 39;page-child& # 39; ,templateUrl: & # 39; child.html& # 39; }) export class  ChildPage { ,@Output (), changeNumber:, EventEmitter,=, new EventEmitter (); ,数量:number =, 0; ,构造函数(){ setInterval(才能(),=祝辞,{ ,,this.changeNumber.emit (+ + this.Number); ,,},1000) ,} }
孩子。html
& lt; ion-content padding> ,,孩子 & lt;/ion-content>
结果:
<强> 3。子获得父实例强>
家长。ts
import {, Component },得到& # 39;@angular/核心# 39;; @ component ({ ,选择器:& # 39;page-parent& # 39; ,templateUrl: & # 39; parent.html& # 39; }) export class  ParentPage {=,我:number 0; }
家长。html
& lt; ion-header> ,& lt; ion-navbar> & lt;才能ion-title> Parent</ion-title> ,& lt;/ion-navbar> & lt;/ion-header> & lt; ion-content  padding> ,& lt; h2>父:{{我}}& lt;/h2> ,& lt; page-child> & lt;/page-child> & lt;/ion-content>
孩子。ts
import {,组件,输入,,EventEmitter,,输出,主机,注入,forwardRef },得到& # 39;@angular/核心# 39;; 进口{ParentPage},得到& # 39;. ./父/母# 39;; @ component ({ ,选择器:& # 39;page-child& # 39; ,templateUrl: & # 39; child.html& # 39; }) export class  ChildPage { 构造函数才能(,@Host (), @ inject (forwardRef((),=祝辞,ParentPage)),应用:,ParentPage), { ,,,setInterval((),=祝辞,{ ,,,,,app.i + +; ,,,},,1000); ,,} }
孩子。html
& lt; ion-content padding> ,child & lt;/ion-content>