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 相关文章推荐
JS打开新窗口的2种方式
Apr 18 Javascript
jquery 清空file域示例(兼容个浏览器)
Oct 11 Javascript
基于jQuery全屏焦点图左右切换插件responsiveslides
Sep 07 Javascript
js鼠标点击图片切换效果实现代码
Nov 19 Javascript
Ext JS框架程序中阻止键盘触发回退或者刷新页面的代码分享
Jun 07 Javascript
微信小程序 特效菜单抽屉效果实例代码
Jan 11 Javascript
微信小程序实现轮播图效果
Sep 07 Javascript
springmvc接收jquery提交的数组数据代码分享
Oct 28 jQuery
vue插槽slot的理解和使用方法
Apr 03 Javascript
JavaScript数组去重实现方法小结
Jan 17 Javascript
ant design vue 表格table 默认勾选几项的操作
Oct 31 Javascript
vue + el-form 实现的多层循环表单验证
Nov 25 Vue.js
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
将兴奋、喜悦和坎加斯带到戴安娜:亚马逊公主
2020/03/03 欧美动漫
PHP控制网页过期时间的代码
2008/09/28 PHP
PHP memcache扩展的三种安装方法
2009/04/26 PHP
php入门教程 精简版
2009/12/13 PHP
php和mysql中uft-8中文编码乱码的几种解决办法
2012/04/19 PHP
typecho插件编写教程(六):调用接口
2015/05/28 PHP
php简单统计字符串单词数量的方法
2015/06/19 PHP
作为程序员必知的16个最佳PHP库
2015/12/09 PHP
PHP实现的DES加密解密封装类完整实例
2017/04/29 PHP
PHP 代码简洁之道(小结)
2019/10/16 PHP
Laravel框架基础语法与知识点整理【模板变量、输出、include引入子视图等】
2019/12/03 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
浅谈javascript构造函数与实例化对象
2015/06/22 Javascript
JavaScript中自带的 reduce()方法使用示例详解
2016/08/10 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
[Bootstrap-插件使用]Jcrop+fileinput组合实现头像上传功能实例代码
2016/12/20 Javascript
jQuery轻松实现无缝轮播效果
2017/03/22 jQuery
详解windows下vue-cli及webpack 构建网站(二)导入bootstrap样式
2017/06/17 Javascript
vuejs使用递归组件实现树形目录的方法
2017/09/30 Javascript
vue组件实现弹出框点击显示隐藏效果
2020/10/26 Javascript
微信小程序实现折线图的示例代码
2019/06/07 Javascript
操作按钮悬浮固定在微信小程序底部的实现代码
2019/08/02 Javascript
js实现双人五子棋小游戏
2020/05/28 Javascript
VUE实时监听元素距离顶部高度的操作
2020/07/29 Javascript
python中列表和元组的区别
2017/12/18 Python
python opencv实现切变换 不裁减图片
2018/07/26 Python
python使用sessions模拟登录淘宝的方式
2019/08/16 Python
python实现秒杀商品的微信自动提醒功能(代码详解)
2020/04/27 Python
python中selenium库的基本使用详解
2020/07/31 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
英国时尚优质的女装:Hope Fashion
2018/08/14 全球购物
领导班子民主生活会整改措施(工商局)
2014/09/21 职场文书
先进个人自荐书
2015/03/06 职场文书
2015年世界环境日演讲稿
2015/03/18 职场文书
如何让2019年上半年的工作总结更出色!
2019/07/01 职场文书
Win11更新失败并提示0xc1900101
2022/04/19 数码科技