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 相关文章推荐
JQuery中的$.getJSON 使用说明
Mar 10 Javascript
用JSON做数据传输格式中的一些问题总结
Dec 21 Javascript
javascript中hasOwnProperty() 方法使用指南
Mar 09 Javascript
JS实现部分HTML固定页面顶部随屏滚动效果
Dec 24 Javascript
jQuery动态添加
Apr 07 Javascript
第二章之Bootstrap 页面排版样式
Apr 25 Javascript
JavaScript中removeChild 方法开发示例代码
Aug 15 Javascript
原生JS封装animate运动框架的实例
Oct 12 Javascript
解决Angular2 router.navigate刷新页面的问题
Aug 31 Javascript
layui复选框的全选与取消实现方法
Sep 02 Javascript
详解Js模块化的作用原理和方案
Apr 29 Javascript
vue2的 router在使用过程中遇到的一些问题
Apr 13 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
PHP脚本数据库功能详解(上)
2006/10/09 PHP
PHP 获取文件路径(灵活应用__FILE__)
2013/02/15 PHP
Laravel 5框架学习之向视图传送数据(进阶篇)
2015/04/08 PHP
PHP PDOStatement::errorInfo讲解
2019/01/31 PHP
PHP实现的用户注册表单验证功能简单示例
2019/02/25 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
js各种验证文本框输入格式(正则表达式)
2010/10/22 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
2012/05/23 Javascript
js、jquery图片动画、动态切换示例代码
2014/06/03 Javascript
浅谈被jQuery抛弃的函数及替代函数
2015/05/03 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
理解javascript闭包
2015/12/15 Javascript
浅谈jquery中next与siblings的区别
2016/10/27 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
NodeJS基础API搭建服务器详细过程记录
2017/04/01 NodeJs
详解从新建vue项目到引入组件Element的方法
2017/08/29 Javascript
在vue项目中安装使用Mint-UI的方法
2017/12/27 Javascript
使用Angular CLI从蓝本生成代码详解
2018/03/24 Javascript
BootStrap模态框闪退问题实例代码详解
2018/12/10 Javascript
如何为你的JavaScript代码日志着色详解
2019/04/08 Javascript
Vue实现购物车详情页面的方法
2019/08/20 Javascript
jquery选择器和属性对象的操作实例分析
2020/01/10 jQuery
在VUE style中使用data中的变量的方法
2020/06/19 Javascript
[01:10:02]IG vs Winstrike 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Windows下安装python2和python3多版本教程
2017/03/30 Python
tensorflow 加载部分变量的实例讲解
2018/07/27 Python
解决Python3.5+OpenCV3.2读取图像的问题
2018/12/05 Python
Django+zTree构建组织架构树的方法
2019/08/21 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
html5图片上传预览示例分享
2014/04/14 HTML / CSS
美国设计师精美珠宝购物网:Netaya
2016/08/28 全球购物
动漫专业高职生职业生涯规划书
2014/02/15 职场文书
2014年五一促销活动方案
2014/03/09 职场文书
银行竞聘演讲稿
2014/05/16 职场文书
小学主题班会教案
2015/08/17 职场文书
python某漫画app逆向
2021/03/31 Python