angular2 ng2 @input和@output理解及示例


Posted in Javascript onOctober 10, 2017

angular2 @input和@output理解

先做个比方,然后奉上代码

比如:

<talk-cmp [talk]="someExp" (rate)="eventHandler($event.rating)">

input, [talk]="someExp" 这个标签可以理解为一个专门的监听器,监听父组件传递过来的someExp参数,并存入自身组件的talk变;好像是开了个后门,允许且只允许父组件的someExp进入,一旦进入立刻抓进一个叫talk的牢房,然后子组件中就可以通过@Input来定义这个变量talk然后使用它。

output ,(click)="eventHandler($event.rating) 这个意思是, 当子组件的click事件被触发,就执行父组件的eventHandler函数,并把子组件的参数$event.rating传递给父组件的eventHandler函数;就好像,当小孩子一哭(执行click事件),他的母亲立刻把他抱在怀里(执行母亲的eventHandler),同时母亲获得了小孩子的一些参数($event.rating)

1、@input()

父组件 father.component.ts 提供数据

import {Component} from "@angular/core";
@Component({
  selector: "my-father",
  templateUrl: "father.html"
})
export class FatherComponent {
  data: Array<Object>;
  constructor() {
    this.data = [
      {
        "id": 1,
        "name": "html"
      },
      {
        "id": 2,
        "name": "css"
      },
      {
        "id": 3,
        "name": "angular"
      },
      {
        "id": 4,
        "name": "ionic"
      },
      {
        "id": 5,
        "name": "node"
      }
    ]
  }
}

模板文件 father.html

<h1>父组件</h1>
// 包含子组件, 并使用属性传递数据过去
<my-child [info]="data"></my-child>

子组件 child.component.ts 获取数据

import {Component, Input} from "@angular/core";
@Component({
  selector: "my-child",
  templateUrl: "child.html"
})
export class ChildComponent {  
  // 使用@Input获取传递过来的数据
  @Input()
  info: Array<Object>;
  constructor() {
  
  }
}

子组件 child.html模板文件

<ul>
  <li *ngFor="let item of info">
    {{item.name}}
  </li>
</ul>

2、@Output()

子组件three-link.component.ts

1. 引入

import {Component, OnInit, Output, EventEmitter} from "@angular/core";

2. 定义输出变量

export class ThreeLinkComponent {
  province: string;
  // 输出一下参数
  @Output() provinceOut = new EventEmitter();  
  constructor() {
    this.province = "陕西";
  } 
}

3. 事件出发,发射变量给父组件

provinceChange() {
  // 选择省份的时候发射省份给父组件
  this.provinceOut.emit(this.province);
}

父组件模板

<!--三级联动组件-->
<three-link (provinceOut)="recPro($event)"></three-link>

父组件

// 函数接受子函数传递过来的变量, 子函数中emit的时候触发这个函数。
recPro(event) {
  this.province = event;
}

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

Javascript 相关文章推荐
Javascript代码混淆综合解决方案-Javascript在线混淆器
Dec 18 Javascript
javascript下function声明一些小结
Dec 28 Javascript
JQuery 常用方法和事件详细介绍
Apr 18 Javascript
javascript和jquery实现设置和移除文本框默认值效果代码
Jan 13 Javascript
JavaScript中解析JSON数据的三种方法
Jul 03 Javascript
详解如何在Vue2中实现组件props双向绑定
Mar 29 Javascript
详解angularjs的数组传参方式的简单实现
Jul 28 Javascript
vue自定义filters过滤器
Apr 26 Javascript
利用npm 安装删除模块的方法
May 15 Javascript
jQuery中将json数据显示到页面表格的方法
May 27 jQuery
详解使用element-ui table组件的筛选功能的一个小坑
Nov 02 Javascript
如何使JavaScript休眠或等待
Apr 27 Javascript
ionic选择多张图片上传的示例代码
Oct 10 #Javascript
详解ionic本地相册、拍照、裁剪、上传(单图完全版)
Oct 10 #Javascript
防止页面url缓存中ajax中post请求的处理方法
Oct 10 #Javascript
Vue实现数字输入框中分割手机号码的示例
Oct 10 #Javascript
JS判断数组那点事
Oct 10 #Javascript
template.js前端模板引擎使用详解
Oct 10 #Javascript
AngularJS中table表格基本操作示例
Oct 10 #Javascript
You might like
PHP - Html Transfer Code
2006/10/09 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
phpstorm激活码2020附使用详细教程
2020/09/25 PHP
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
JQuery 获取json数据$.getJSON方法的实例代码
2013/08/02 Javascript
js如何设置在iframe框架中指定div不显示
2013/12/04 Javascript
jquery 获取dom固定元素 添加样式的简单实例
2014/02/04 Javascript
纯Javascript实现ping功能的方法
2015/03/20 Javascript
JS实现的另类手风琴效果网页内容切换代码
2015/09/08 Javascript
jQuery中cookie插件用法实例分析
2015/12/04 Javascript
基于jquery实现省市联动特效
2015/12/17 Javascript
jQuery特殊符号转义的实现
2016/11/30 Javascript
JavaScript实现时钟滴答声效果
2017/01/29 Javascript
nodejs实现截取上传视频中一帧作为预览图片
2017/12/10 NodeJs
vue-cli下的vuex的简单Demo图解(实现加1减1操作)
2018/02/26 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
vue实现简单的星级评分组件源码
2018/11/16 Javascript
在vue中根据光标的显示与消失实现下拉列表
2019/09/29 Javascript
Vue-Cli项目优化操作的实现
2019/10/27 Javascript
js实现随机点名器精简版
2020/06/29 Javascript
Python随机读取文件实现实例
2017/05/25 Python
Python实现翻转数组功能示例
2018/01/12 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
2018/03/13 Python
python实现音乐下载的统计
2018/06/20 Python
详解Python中的正则表达式
2018/07/08 Python
python实现坦克大战游戏 附详细注释
2020/03/27 Python
python点击鼠标获取坐标(Graphics)
2019/08/10 Python
Python 动态变量名定义与调用方法
2020/02/09 Python
python3.6连接mysql数据库及增删改查操作详解
2020/02/10 Python
使用python创建Excel工作簿及工作表过程图解
2020/05/27 Python
Marriott国际:万豪国际酒店查询预订
2017/09/25 全球购物
解释下列WebService名词:WSDL、SOAP、UDDI
2012/06/22 面试题
2015年仓管员工作总结
2015/04/21 职场文书
童年读书笔记
2015/06/26 职场文书
高中军训感想
2015/08/07 职场文书
Python scrapy爬取起点中文网小说榜单
2021/06/13 Python