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 相关文章推荐
使用IE的地址栏来辅助调试Web页脚本
Mar 08 Javascript
ExtJS4中使用mixins实现多继承示例
Dec 03 Javascript
JS获取select-option-text_value的方法
Dec 26 Javascript
jQuery中.live()方法的用法深入解析
Dec 30 Javascript
jquery 获取dom固定元素 添加样式的简单实例
Feb 04 Javascript
JS表的模拟方法
Feb 05 Javascript
Jquery遍历Json数据的方法
Apr 20 Javascript
关于backbone url请求中参数带有中文存入数据库是乱码的快速解决办法
Jun 13 Javascript
Vue路由守卫之路由独享守卫
Sep 25 Javascript
layui(1.0.9)文件上传upload,前后端的实例代码
Sep 26 Javascript
vue实现微信浏览器左上角返回按钮拦截功能
Jan 18 Javascript
koa2 数据api中间件设计模型的实现方法
Jul 13 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实现paypal 授权登录
2015/05/28 PHP
PHP Try-catch 语句使用技巧
2016/02/28 PHP
PHP实现多关键字加亮功能
2016/10/21 PHP
ThinkPHP5.0框架控制器继承基类和自定义类示例
2018/05/25 PHP
DOM下的节点属性和操作小结
2009/05/14 Javascript
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
dreamweaver 安装Jquery智能提示
2011/04/02 Javascript
20个非常棒的 jQuery 幻灯片插件和教程分享
2011/08/23 Javascript
js判断FCKeditor内容是否为空的两种形式
2013/05/14 Javascript
可兼容IE的获取及设置cookie的jquery.cookie函数方法
2013/09/02 Javascript
Jquery中children与find之间的区别详细解析
2013/11/29 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
Seajs 简易文档 提供简单、极致的模块化开发体验
2016/04/13 Javascript
基于BootstrapValidator的Form表单验证(24)
2016/12/12 Javascript
vue脚手架搭建项目的兼容性配置详解
2018/07/17 Javascript
使用Object.defineProperty如何巧妙找到修改某个变量的准确代码位置
2018/11/02 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
JS中的算法与数据结构之字典(Dictionary)实例详解
2019/08/20 Javascript
Cordova(ionic)项目实现双击返回键退出应用
2019/09/17 Javascript
[00:43]DOTA2小紫本全民票选福利PA至宝全方位展示
2014/11/25 DOTA
Python多线程编程(三):threading.Thread类的重要函数和方法
2015/04/05 Python
TensorFlow实现非线性支持向量机的实现方法
2018/04/28 Python
Python3连接Mysql8.0遇到的问题及处理步骤
2020/02/17 Python
python Paramiko使用示例
2020/09/21 Python
彻底解决Python包下载慢问题
2020/11/15 Python
python try...finally...的实现方法
2020/11/25 Python
thinkphp5 路由分发原理
2021/03/18 PHP
AmazeUI底部导航栏与分享按钮的示例代码
2020/08/18 HTML / CSS
德国富尔达运动鞋店:43einhalb
2020/12/25 全球购物
机修工岗位职责
2013/11/24 职场文书
广播节目策划方案
2014/05/23 职场文书
2014年党员干部四风问题自我剖析材料
2014/09/29 职场文书
2014年审计工作总结
2014/11/17 职场文书
诚信考试承诺书范文
2015/04/29 职场文书
指导老师鉴定意见
2015/06/05 职场文书
postgreSQL数据库基础知识介绍
2022/04/12 PostgreSQL