Angular2实现组件交互的方法分析


Posted in Javascript onDecember 19, 2017

本文实例讲述了Angular2实现组件交互的方法。分享给大家供大家参考,具体如下:

前言

在Angular开发中,我们经常会涉及到组件之间的交互,比如会引用自己部门开发的组件
有时候,我们需要向引用的组件里面绑定一些数据,或者我们需要引用的子组件输出一些数据
这时,我们就需要处理好组件之间的交互

组件交互的关键代码

父组件绑定数据到子组件

子组件

<h3>{{hero.name}} says:</h3>
@Input() hero: Hero;

父组件

<hero-child [hero]="myhero" ></hero-child>
myhero = "Mr.IQ";

这里子组件的@Input表示它需要hero这个实体,之后父组件引入子组件的时候,就得在子组件标签内写入hero,同时在自己的组件内为hero赋值就实现了父组件数据绑定到子组件

父组件监听子组件的事件

子组件

<button (click)="vote(true)" >Agree</button>
@Output() onVoted = new EventEmitter<boolean>();
vote(agreed: boolean) { this.onVoted.emit(agreed);}

父组件

<my-voter (myonVoted)="onVoted($event)"></my-voter>
myonVoted(agreed: boolean) { agreed ? this.agreed++ : this.disagreed++; }

子组件的@Output表示它会用onVoted方法向父组件传递一个boolean值,父组件引入子组件之后,通过把子组件的方法绑定到自己的方法上,就可以达到监听子组件的效果

setter截听输入属性值的变化

子组件

<h3>"{{name}}"</h3>
private _name = '';
@Input()
set name(name: string) { this._name = (name && name.trim()) || '<no name set>'; }
get name(): string { return this._name; }

父组件

<name-child [name]="myname"></name-child>

父组件引用子组件之后,向子组件绑定数据,子组件通过set,get对父组件传过来的数据进行修改显示

父组件与子组件通过本地变量互动

子组件

seconds = 11;
stop() { this.message = `Holding at T-${this.seconds} seconds`;  }

父组件

<button (click)="timer.stop()">Stop</button>
<div class="seconds">{{timer.seconds}}</div>
<countdown-timer #timer></countdown-timer>

子组件定义了变量和方法,父组件引用子组件标签之后,通过在标签建立本地变量来代表子组件,然后通过变量就可以实现访问子组件的变量和方法

小结

组件交互是经常用到的知识,需要熟练掌握
还有其它交互方式,比如生命周期、服务,遇到了可以继续深入研究

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
JavaScript中的Array对象使用说明
Jan 17 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
Mar 26 Javascript
jQuery中after的两种用法实例
Jul 03 Javascript
JavaScript原生对象常用方法总结(推荐)
May 13 Javascript
jQuery实现的导航下拉菜单效果
Jul 04 Javascript
javascript正则表达式中分组详解
Jul 17 Javascript
第一次接触神奇的Bootstrap菜单和导航
Aug 01 Javascript
使用Javascript监控前端相关数据的代码
Oct 27 Javascript
EasyUI折叠表格层次显示detailview详解及实例
Dec 28 Javascript
js防刷新的倒计时代码 js倒计时代码
Sep 06 Javascript
react实现一个优雅的图片占位模块组件详解
Oct 30 Javascript
使用webpack构建应用的方法步骤
Mar 04 Javascript
JS+WCF实现进度条实时监测数据加载量的方法详解
Dec 19 #Javascript
jquery自定义显示消息数量
Dec 19 #jQuery
基于Vue开发数字输入框组件
Dec 19 #Javascript
jquery实现侧边栏左右伸缩效果的示例
Dec 19 #jQuery
从setTimeout看js函数执行过程
Dec 19 #Javascript
mongoose更新对象的两种方法示例比较
Dec 19 #Javascript
jquery中done和then的区别(详解)
Dec 19 #jQuery
You might like
浅析PHP中Collection 类的设计
2013/06/21 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
PHP缓存工具XCache安装与使用方法详解
2018/04/09 PHP
Flash+XML滚动新闻代码 无图片 附源码下载
2007/11/22 Javascript
javascript 数组的方法集合
2008/06/05 Javascript
JS getMonth()日期函数的值域是0-11
2010/02/15 Javascript
JQuery通过Ajax提交表单并返回结果
2011/07/31 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
jQuery替换字符串(实例代码)
2013/11/13 Javascript
深入理解JavaScript系列(18):面向对象编程之ECMAScript实现
2015/03/05 Javascript
jquery悬浮提示框完整实例
2016/01/13 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
ES6使用let命令更简单的实现块级作用域实例分析
2017/03/31 Javascript
Agularjs妙用双向数据绑定实现手风琴效果
2017/05/26 Javascript
Node.js v8.0.0正式发布!看看带来了哪些主要新特性
2017/06/02 Javascript
Node.JS使用Sequelize操作MySQL的示例代码
2017/10/09 Javascript
Angular2 自定义表单验证器的实现方法
2018/12/14 Javascript
JavaScript中的null和undefined用法解析
2019/09/30 Javascript
Python实现PS滤镜中马赛克效果示例
2018/01/20 Python
解决seaborn在pycharm中绘图不出图的问题
2018/05/24 Python
Python 16进制与中文相互转换的实现方法
2018/07/09 Python
python切片的步进、添加、连接简单操作示例
2019/07/11 Python
通过实例解析python描述符原理作用
2020/01/22 Python
Python爬虫回测股票的实例讲解
2021/01/22 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
Html5 APP中监听返回事件处理的方法示例
2018/03/15 HTML / CSS
社区志愿者心得体会
2014/01/03 职场文书
户外婚礼策划方案
2014/02/08 职场文书
心理健康课教学反思
2014/02/13 职场文书
业务部门经理岗位职责
2014/02/23 职场文书
消防宣传口号
2014/06/16 职场文书
业务内勤岗位职责
2015/04/13 职场文书
《这片土地是神圣的》教学反思
2016/02/16 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android
vue3不同环境下实现配置代理
2022/05/25 Vue.js