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

 更新时间:2017年05月21日 14:37:42   作者:justforuse  
这篇文章主要介绍了详解Angular2中Input和Output用法及示例,对于angular2中的Input和Output可以和AngularJS中指令作类比,有兴趣的可以了解一下

对于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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • 详解AngularJS Filter(过滤器)用法

    详解AngularJS Filter(过滤器)用法

    这篇文章主要介绍了AngularJS的filter,中文名“过滤器”是用来过滤变量的值,或者格式化输出,得到自己所期望的结果或格式的东东,的相关资料,需要的朋友可以参考下
    2015-12-12
  • AngularJS 最常用的功能汇总

    AngularJS 最常用的功能汇总

    angularjs功能在项目开发中经常会用到,本文给大家总结了八种angularjs最常用的功能,感兴趣的朋友一起学习吧
    2016-02-02
  • Angular的MVC和作用域

    Angular的MVC和作用域

    本文主要Angular的MVC和作用域进行详细分析介绍,具有一定的参考价值,下面跟着小编一起来看下吧
    2016-12-12
  • AngularJs IE Compatibility 兼容老版本IE

    AngularJs IE Compatibility 兼容老版本IE

    本文主要介绍AngularJs IE Compatibility 兼容老版本IE的问题及解决办法,有兴趣的小伙伴可以参考下
    2016-09-09
  • AngularJS 实现按需异步加载实例代码

    AngularJS 实现按需异步加载实例代码

    这篇文章主要介绍了AngularJS 实现按需异步加载实例代码的相关资料,需要的朋友可以参考下
    2015-10-10
  • AngularJS标签页tab选项卡切换功能经典实例详解

    AngularJS标签页tab选项卡切换功能经典实例详解

    这篇文章主要介绍了AngularJS实现标签页tab选项卡功能,结合实例形式总结分析了各种常用的tab选项卡切换操作实现技巧与相关操作注意事项,需要的朋友可以参考下
    2018-05-05
  • Angular 中 select指令用法详解

    Angular 中 select指令用法详解

    这篇文章主要介绍了Angular 中 select指令用法详解的相关资料,本文介绍的非常详细,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • 详解Angular2学习笔记之Html属性绑定

    详解Angular2学习笔记之Html属性绑定

    本篇文章主要介绍了详解Angular2学习笔记之Html属性绑定,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • AngularJS 验证码60秒倒计时功能的实现

    AngularJS 验证码60秒倒计时功能的实现

    最近在做AngularJS 项目,这是写的一个60秒倒计时功能,下面小编给大家介绍AngularJS 验证码60秒倒计时功能的实现,需要的朋友参考下吧
    2017-06-06
  • 学习Angular中作用域需要注意的坑

    学习Angular中作用域需要注意的坑

    这篇文章记录了当时刚学习angular的时候踩的关于作用域的坑,希望给以后学习Angular作用域的朋友一个提醒,有需要的可以参考学习。
    2016-08-08

最新评论