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 相关文章推荐
添加到收藏夹代码(兼容几乎所有的浏览器)
Jan 09 Javascript
Javascript &amp; DHTML 实例编程(教程)(三)初级实例篇1—上传文件控件实例
Jun 02 Javascript
{}与function(){}选用空对象{}来存放keyValue
May 23 Javascript
javascript:void(0)使用探讨
Aug 27 Javascript
使用jQuery实现图片遮罩半透明坠落遮挡
Mar 16 Javascript
jQuery简单实现QQ空间点赞已经取消点赞
Apr 02 Javascript
原生javascript实现解析XML文档与字符串
Mar 01 Javascript
解决在Bootstrap模糊框中使用WebUploader的问题
Mar 22 Javascript
详解基于React.js和Node.js的SSR实现方案
Mar 21 Javascript
微信小程序用户拒绝授权的处理方法详解
Sep 20 Javascript
Vue使用虚拟dom进行渲染view的方法
Dec 26 Javascript
vue 实现上传组件
May 31 Vue.js
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
模拟OICQ的实现思路和核心程序(一)
2006/10/09 PHP
PHP多维数组转一维数组的简单实现方法
2015/12/23 PHP
php+ajax实现仿百度查询下拉内容功能示例
2017/10/20 PHP
PHP获取数据库表中的数据插入新的表再原删除数据方法
2018/10/12 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
PHP如何通过date() 函数格式化显示时间
2020/11/13 PHP
关于B/S判断浏览器断开的问题讨论
2008/10/29 Javascript
jQuery EasyUI API 中文文档 - Pagination分页
2011/09/29 Javascript
Javascript 判断是否存在函数的方法
2013/01/03 Javascript
jquery实现表单验证并阻止非法提交
2015/07/09 Javascript
JS实现的幻灯片切换显示效果
2016/09/07 Javascript
通过jsonp获取json数据实现AJAX跨域请求
2017/01/22 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
ES6新数据结构Set与WeakSet用法分析
2017/03/31 Javascript
微信小程序模拟cookie的实现
2018/06/20 Javascript
微信小程序实现多选框全选与取消全选功能示例
2019/05/14 Javascript
vue 全局环境切换问题
2019/10/27 Javascript
Element Breadcrumb 面包屑的使用方法
2020/07/26 Javascript
js实现飞机大战小游戏
2020/08/26 Javascript
使用Python脚本在Linux下实现部分Bash Shell的教程
2015/04/17 Python
编写Python CGI脚本的教程
2015/06/29 Python
Python常见格式化字符串方法小结【百分号与format方法】
2016/09/18 Python
python 判断是否为正小数和正整数的实例
2017/07/23 Python
Python字典的核心底层原理讲解
2019/01/24 Python
很酷的python表白工具 你喜欢我吗
2019/04/11 Python
python实现电子书翻页小程序
2019/07/23 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
解决pytorch 交叉熵损失输出为负数的问题
2020/07/07 Python
基于python实现操作git过程代码解析
2020/07/27 Python
Matplotlib配色之Colormap详解
2021/01/05 Python
推广活动策划方案
2014/08/23 职场文书
普通党员个人整改措施
2014/10/27 职场文书
区域经理岗位职责
2015/02/02 职场文书
2015年乡镇发展党员工作总结
2015/03/31 职场文书
利用ajax+php实现商品价格计算
2021/03/31 PHP