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静态的url如何传递
May 03 Javascript
基于jquery的jqDnR拖拽溢出的修改
Feb 12 Javascript
Node.js生成HttpStatusCode辅助类发布到npm
Apr 09 Javascript
javascript实现数字+字母验证码的简单实例
Feb 10 Javascript
JavaScript焦点事件、鼠标事件和滚轮事件使用详解
Jan 15 Javascript
jQuery选择器总结之常用元素查找方法
Aug 04 Javascript
微信小程序实战之轮播图(3)
Apr 17 Javascript
全面解析Node.js 8 重要功能和修复
Jun 02 Javascript
详解Angular操作cookies方法
Jun 01 Javascript
使用mixins实现elementUI表单全局验证的解决方法
Apr 02 Javascript
Vue+Element-UI实现上传图片并压缩
Nov 26 Javascript
微信小程序实现抖音播放效果的实例代码
Apr 11 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的优点与缺点
2013/04/11 PHP
PHP传值到不同页面的三种常见方式及php和html之间传值问题
2015/11/19 PHP
Laravel框架中VerifyCsrfToken报错问题的解决
2017/08/30 PHP
更正确的asp冒泡排序
2007/05/24 Javascript
javascript web页面刷新的方法收集
2009/07/02 Javascript
JavaScript子窗口ModalDialog中操作父窗口对像
2012/12/11 Javascript
js换图片效果可进行定时操作
2014/06/09 Javascript
手机端点击图片放大特效PhotoSwipe.js插件实现
2016/08/24 Javascript
原生JS实现匀速图片轮播动画
2016/10/18 Javascript
Vue学习笔记进阶篇之函数化组件解析
2017/07/21 Javascript
微信小程序request请求后台接口php的实例详解
2017/09/20 Javascript
详解小程序云开发数据库
2019/05/20 Javascript
vue-cli3+typescript新建一个项目的思路分析
2019/08/06 Javascript
js tab栏切换代码实例解析
2019/09/03 Javascript
taro小程序添加骨架屏的实现代码
2019/11/15 Javascript
Nuxt配置Element-UI按需引入的操作方法
2020/07/06 Javascript
python备份文件以及mysql数据库的脚本代码
2013/06/10 Python
Python栈类实例分析
2015/06/15 Python
Python遍历文件夹和读写文件的实现代码
2016/08/28 Python
Python切片操作实例分析
2018/03/16 Python
Python3.6笔记之将程序运行结果输出到文件的方法
2018/04/22 Python
Python自然语言处理 NLTK 库用法入门教程【经典】
2018/06/26 Python
Flask框架各种常见装饰器示例
2018/07/17 Python
用python标准库difflib比较两份文件的异同详解
2018/11/16 Python
Python实现操纵控制windows注册表的方法分析
2019/05/24 Python
Python 将 QQ 好友头像生成祝福语的实现代码
2020/05/03 Python
python datetime时间格式的相互转换问题
2020/06/11 Python
Python的3种运行方式:命令行窗口、Python解释器、IDLE的实现
2020/10/10 Python
通过案例解析python鸭子类型相关原理
2020/10/10 Python
Clarks鞋美国官网:全球领军鞋履品牌
2017/05/13 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
Shell编程面试题
2012/05/30 面试题
机械加工与数控专业自荐书
2014/06/04 职场文书
新学期开学标语2015
2015/07/16 职场文书
tp5使用layui实现多个图片上传(带附件选择)的方法实例
2021/11/17 PHP
HTML5之高度塌陷问题的解决
2022/06/01 HTML / CSS