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写的一个简易的投票
Nov 27 Javascript
显示今天的日期js代码(阳历和农历)
Sep 30 Javascript
JavaScript中setMonth()方法的使用详解
Jun 11 Javascript
mvc 、bootstrap 结合分布式图简单实现分页
Oct 10 Javascript
微信小程序 页面传参实例详解
Nov 16 Javascript
vue.js中mint-ui框架的使用方法
May 12 Javascript
详解如何在React组件“外”使用父组件的Props
Jan 12 Javascript
JavaScript实现微信号随机切换代码
Mar 09 Javascript
Vue组件之单向数据流的解决方法
Nov 10 Javascript
JavaScript模板引擎应用场景及实现原理详解
Dec 14 Javascript
vue打包通过image-webpack-loader插件对图片压缩优化操作
Nov 12 Javascript
Vue项目打包部署到apache服务器的方法步骤
Feb 01 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
PHP实现的蚂蚁爬杆路径算法代码
2015/12/03 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
2019/05/14 PHP
Laravel框架处理用户的请求操作详解
2019/12/20 PHP
Javascript的并行运算实现代码
2010/11/19 Javascript
IE6下出现JavaScript未结束的字符串常量错误的解决方法
2010/11/21 Javascript
Javascript中查找不以XX字符结尾的单词示例代码
2013/10/15 Javascript
javascript操作table(insertRow,deleteRow,insertCell,deleteCell方法详解)
2013/12/16 Javascript
基于jquery实现省市区三级联动效果
2015/12/25 Javascript
js实现瀑布流的三种方式比较
2020/06/28 Javascript
H5用户注册表单页 注册模态框!
2016/09/17 Javascript
JavaScript中关键字 in 的使用方法详解
2016/10/17 Javascript
JavaScript实现邮箱地址自动匹配功能代码
2016/11/28 Javascript
js手机号4位显示空格,银行卡每4位显示空格效果
2017/03/23 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
详解在vue-cli项目中使用mockjs(请求数据删除数据)
2017/10/23 Javascript
JavaScript中发出HTTP请求最常用的方法
2018/07/12 Javascript
Vue 理解之白话 getter/setter详解
2019/04/16 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
JavaScript实现拖拽盒子效果
2020/02/06 Javascript
基于vue实现探探滑动组件功能
2020/05/29 Javascript
[51:34]Ti4主赛事胜者组 DK vs EG 2
2014/07/19 DOTA
Python中的自省(反射)详解
2015/06/02 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
对PyQt5中的菜单栏和工具栏实例详解
2019/06/20 Python
12个步骤教你理解Python装饰器
2019/07/01 Python
解决python 3 urllib 没有 urlencode 属性的问题
2019/08/22 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
Python使用多进程运行含有任意个参数的函数
2020/05/02 Python
通过cmd进入python的步骤
2020/06/16 Python
商场中秋节广播稿
2014/01/17 职场文书
大学生毕业鉴定
2014/01/31 职场文书
银行业务授权委托书
2014/10/10 职场文书
2014年小学教导处工作总结
2014/12/19 职场文书
大学生村官入党自传
2015/06/26 职场文书
python基础详解之if循环语句
2021/04/24 Python
vue动态绑定style样式
2022/04/20 Vue.js