全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

详解Angular2中Input和Output用法及示例

对于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小时内与您取得联系。