对于angular2中的Input和Output可以和AngularJS中指令作类比。

Input相当于指令的值绑定,无论是单向的(@)还是双向的(=)。都是将父作用域的值“输入”到子作用域中,然后子作用域进行相关处理。
Output相当于指令的方法绑定,子作用域触发事件执行响应函数,而响应函数方法体则位于父作用域中,相当于将事件“输出到”父作用域中,在父作用域中处理。
看个angular2示例吧,我们定义一个子组件,获取父作用域的数组值并以列表形式显示,然后当点击子组件的元素时调用父组件的方法将该元素删除。
//app.component.html
<app-child [values]="data" (childEvent) = "getChildEvent($event)">
</app-child>
//app.component.ts
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
export class AppComponent {
data = [1,2,3];
getChildEvent(index){
console.log(index);
this.data.splice(index,1);
}
}
以上是跟组件app-root的组件类及模板,可以我们把data输入到子组件app-child中,然后接收childEvent事件并对其进行响应。
//app-child.component.html
<p *ngFor="let item of values; let i = index" (click)="fireChildEvent(i)">
{{item}}
</p>
//app-child.component.ts
@Component({
selector: 'app-child',
templateUrl: './child.component.html',
styleUrls: ['./child.component.css']
})
export class ChildComponent implements OnInit {
@Input() values;
@Output() childEvent = new EventEmitter<any>();
constructor() { }
ngOnInit() {
}
fireChildEvent(index){
this.childEvent.emit(index);
}
}
子组件定义了values接收了父组件的输入,这里就是data值,然后使用ngFor指令显示。
当点击每个元素的时候触发了click事件,执行fireChildEvent函数,该函数要将元素的index值“输出”到父组件中进行处理。
Output一般都是一个EventEmitter的实例,使用实例的emit方法将参数emit到父组件中,触发父组件的childEvent事件。
然后父组件监听到该事件的发生,执行对应的处理函数getChildEvent,删除传递的元素索引指向的数据,同时,视图更新。
实际效果:
源码地址:https://github.com/justforuse/angular2-demo/tree/master/angular-input-output
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# angular
# input
# output
# angular2
# Angular2 组件间通过@Input @Output通讯示例
# Angular 2父子组件数据传递之@Input和@Output详解(下)
# Angular 2父子组件数据传递之@Input和@Output详解 (上)
# angular2 ng2 @input和@output理解及示例
# 都是
# 绑定
# 对其
# 要将
# 并以
# 将该
# 大家多多
# 到该
# 看个
# data
# gt
# childEvent
# event
# getChildEvent
# templateUrl
# styleUrls
# css
# root
# ts
# Component
相关文章:
山东云建站价格为何差异显著?
家族网站制作贴纸教程视频,用豆子做粘帖画怎么制作?
怀化网站制作公司,怀化新生儿上户网上办理流程?
5种Android数据存储方式汇总
如何选择网络建站服务器?高效建站必看指南
深圳企业网站制作设计,在深圳如何网上全流程注册公司?
如何将凡科建站内容保存为本地文件?
宝塔建站后网页无法访问如何解决?
如何通过虚拟主机空间快速建站?
网站制作壁纸教程视频,电脑壁纸网站?
中山网站制作网页,中山新生登记系统登记流程?
如何选购建站域名与空间?自助平台全解析
小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化
网站微信制作软件,如何制作微信链接?
建站之星安全性能如何?防护体系能否抵御黑客入侵?
如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?
惠州网站建设制作推广,惠州市华视达文化传媒有限公司怎么样?
c# 在高并发下使用反射发射(Reflection.Emit)的性能
如何在宝塔面板创建新站点?
C#如何序列化对象为XML XmlSerializer用法
如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?
陕西网站制作公司有哪些,陕西凌云电器有限公司官网?
建站主机与服务器功能差异如何区分?
实现点击下箭头变上箭头来回切换的两种方法【推荐】
建站之星体验版:智能建站系统+响应式设计,多端适配快速建站
Swift开发中switch语句值绑定模式
建站之星后台管理系统如何操作?
公司网站制作价格怎么算,公司办个官网需要多少钱?
湖州网站制作公司有哪些,浙江中蓝新能源公司官网?
如何通过免费商城建站系统源码自定义网站主题与功能?
江苏网站制作公司有哪些,江苏书法考级官方网站?
佛山网站制作系统,佛山企业变更地址网上办理步骤?
网站制作大概多少钱一个,做一个平台网站大概多少钱?
建站之星免费模板:自助建站系统与智能响应式一键生成
如何登录建站主机?访问步骤全解析
网站制作软件免费下载安装,有哪些免费下载的软件网站?
小建面朝正北,A点实际方位是否存在偏差?
已有域名如何快速搭建专属网站?
西安专业网站制作公司有哪些,陕西省建行官方网站?
建站之星在线客服如何快速接入解答?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
如何撰写建站申请书?关键要点有哪些?
如何注册花生壳免费域名并搭建个人网站?
如何构建满足综合性能需求的优质建站方案?
三星网站视频制作教程下载,三星w23网页如何全屏?
建站之星24小时客服电话如何获取?
企业在线网站设计制作流程,想建设一个属于自己的企业网站,该如何去做?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
建站主机如何选?高性价比方案全解析
*请认真填写需求信息,我们会在24小时内与您取得联系。