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 相关文章推荐
js异步加载的三种解决方案
Mar 04 Javascript
jq选项卡鼠标延迟的插件实例
May 13 Javascript
读取input:file的路径并显示本地图片的方法
Sep 23 Javascript
js使用递归解析xml
Dec 12 Javascript
javascript弹出窗口实现代码
Nov 12 Javascript
基于jQuery实现的仿百度首页滑动选项卡效果代码
Nov 16 Javascript
深入探讨Vue.js组件和组件通信
Sep 12 Javascript
JS函数多个参数默认值指定方法分析
Nov 28 Javascript
JS实现物体带缓冲的间歇运动效果示例
Dec 22 Javascript
JavaScript实现两个select下拉框选项左移右移
Mar 09 Javascript
JavaScript判断日期时间差的实例代码
Mar 01 Javascript
js实现的格式化数字和金额功能简单示例
Jul 30 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 array的学习笔记
2012/05/10 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
实例讲解PHP设计模式编程中的简单工厂模式
2016/02/29 PHP
PHP操作mysql数据库分表的方法
2016/06/09 PHP
PHP获取客户端及服务器端IP的封装类
2016/07/21 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
在js中单选框和复选框获取值的方式
2009/11/06 Javascript
jquery 经典动画菜单效果代码
2010/01/26 Javascript
jquery实现的鼠标拖动排序Li或Table
2014/05/04 Javascript
JavaScript学习小结(一)——JavaScript入门基础
2015/09/02 Javascript
JQuery+EasyUI轻松实现步骤条效果
2016/02/22 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
2016/03/10 Javascript
javascript和jquery实现用户登录验证
2016/05/04 Javascript
详解前端路由实现与react-router使用姿势
2017/08/07 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
vue2.0 better-scroll 实现移动端滑动的示例代码
2018/01/25 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
vue-autoui自匹配webapi的UI控件的实现
2020/03/20 Javascript
vue 限制input只能输入正数的操作
2020/08/05 Javascript
Python构造函数及解构函数介绍
2015/02/26 Python
Python错误处理操作示例
2018/07/18 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
python安装numpy和pandas的方法步骤
2019/05/27 Python
详解python中index()、find()方法
2019/08/29 Python
git查看、创建、删除、本地、远程分支方法详解
2020/02/18 Python
python求前n个阶乘的和实例
2020/04/02 Python
北京华建集团SQL面试题
2014/06/03 面试题
个人生活学习自我评价范文
2013/11/26 职场文书
大学生毕业求职信
2014/06/12 职场文书
淘宝客服工作职责
2014/07/11 职场文书
领导班子党的群众路线对照检查材料
2014/09/25 职场文书
坎儿井导游词
2015/02/09 职场文书
慰问信的写作格式及范文!
2019/06/24 职场文书
PHP实现考试倒计时功能代码
2021/04/16 PHP
Go语言中break label与goto label的区别
2021/04/28 Golang
新手初学Java网络编程
2021/07/07 Java/Android