Angular4的输入属性与输出属性实例详解


Posted in Javascript onNovember 29, 2017

本文实例讲述了Angular4的输入属性与输出属性。分享给大家供大家参考,具体如下:

Angular4输入属性

输入属性通常用于父组件向子组件传递信息

举个栗子:我们在父组件向子组件传递股票代码,这里的子组件我们叫它app-order

首先在app.order.component.ts中声明需要由父组件传递进来的值

order.component.ts

...
@Input()
stockCode: string
@Input()
amount: string
...

order.component.html

<p>这里是子组件</p>
<p>股票代码为{{stockCode}}</p>
<p>股票总数为{{amount}}</p>

然后我们需要在父组件(app.component)中向子组件传值

app.component.ts

...
stock: string
...

app.component.html

<input type="text" placeholder="请输入股票代码" [(ngModel)]="stock">
<app-order [stockCode]="stock" [amount]="100"></app-order>

这里我们使用了Angular的双向数据绑定,将用户输入的值和控制器中的stock进行绑定。然后传递给子组件,子组件接收后在页面显示。

Angular4输出属性

当子组件需要向父组件传递信息时需要用到输出属性。

举个栗子:当我们从股票交易所获得股票的实时价格时,希望外部也可以得到这个信息。为了方便,这里的实时股票价格我们通过一个随机数来模拟。这里的子组件我们叫它app.price.quote

使用EventEmitter从子组件向外发射事件

price.quote.ts

export class PriceQuoteComponent implements OnInit{
 stockCode: string = 'IBM';
 price: number;
 //使用EventEmitter发射事件
 //泛型是指往外发射的事件是什么类型
 //priceChange为事件名称
 @Output()
 priceChange:EventEmitter<PriceQuote> = new EventEmitter();
 constructor(){
  setInterval(() => {
   let priceQuote = new PriceQuote(this.stockCode, 100*Math.random());
   this.price = priceQuote.lastPrice;
   //发射事件
   this.priceChange.emit(priceQuote);
  })
 }
 ngInit(){
 }
}
//股票信息类
//stockCode为股票代码,lastPrice为股票价格
export class PriceQuote{
 constructor(public stockCode:string,
    public lastPrice:number
 )
}

price.quote.html

<p>
 这里是报价组件
</p>
<p>
 股票代码是{{stockCode}}
</p>
<p>
 股票价格是{{price | number:'2.2-2'}}
</p>

接着我们在父组件中接收事件

app.component.html

<app-price-quote (priceChange)="priceQuoteHandler($event)"></app-price-quote>
<div>
 这是在报价组件外, 股票代码是{{priceQuote.stokcCode}},
 股票价格是{{priceQuote.lastPrice | number:'2.2-2'}}
</div>

事件绑定和原生的事件绑定是一样的,都是将事件名称放在()中。

app.component.ts

export class AppComponent{
 priceQuote:PriceQuote = new PriceQuote('', 0);
 priceQuoteHandler(event:PriceQuote){
  this.priceQuote = event;
 }
}

这里的event类型就是子组件传递事件的类型。

简单的说,就是子组件通过emit发射事件priceChange,并将值传递出来,父组件在使用子组件时会触发priceChange事件,接收到值。

希望本文所述对大家AngularJS程序设计有所帮助。

Javascript 相关文章推荐
简易js代码实现计算器操作
Apr 15 Javascript
jquery解决客户端跨域访问问题
Jan 06 Javascript
AngularJs根据访问的页面动态加载Controller的解决方案
Feb 04 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
第一章之初识Bootstrap
Apr 25 Javascript
浅析Bootstrap组件之面板组件
May 04 Javascript
vue-cli+webpack在生成的项目中使用bootstrap实例代码
May 26 Javascript
jquery实现左右轮播图效果
Sep 28 jQuery
使用Vue如何写一个双向数据绑定(面试常见)
Apr 20 Javascript
JS获取指定月份的天数两种实现方法
Jun 22 Javascript
ES6 let和const定义变量与常量的应用实例分析
Jun 27 Javascript
electron-vue开发环境内存泄漏问题汇总
Oct 10 Javascript
node.js中axios使用心得总结
Nov 29 #Javascript
Vue2.0用户权限控制解决方案
Nov 29 #Javascript
vue.js项目中实用的小技巧汇总
Nov 29 #Javascript
关于 angularJS的一些用法
Nov 29 #Javascript
ReactNative之FlatList的具体使用方法
Nov 29 #Javascript
ReactNative 之FlatList使用及踩坑封装总结
Nov 29 #Javascript
jQuery图片加载失败替换默认图片方法汇总
Nov 29 #jQuery
You might like
聊天室php&amp;mysql(三)
2006/10/09 PHP
PHP实现支持加盐的图片加密解密
2016/09/09 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
php语法检查的方法总结
2019/01/21 PHP
关于 byval 与 byref 的区别分析总结
2007/10/08 Javascript
js+CSS 图片等比缩小并垂直居中实现代码
2008/12/01 Javascript
jQuery版仿Path菜单效果
2011/12/15 Javascript
jQuery Mobile 导航栏代码
2013/11/01 Javascript
javascript中声明函数的方法及调用函数的返回值
2014/07/22 Javascript
javascript中setAttribute()函数使用方法及兼容性
2015/07/19 Javascript
javascript获取网页各种高宽及位置的方法总结
2016/07/27 Javascript
jQuery使用siblings获取某元素所有同辈(兄弟姐妹)元素用法示例
2017/01/30 Javascript
Webpack中css-loader和less-loader的使用教程
2017/04/27 Javascript
jQuery实现基本隐藏与显示效果的方法详解
2018/09/05 jQuery
vue 中基于html5 drag drap的拖放效果案例分析
2018/11/01 Javascript
微信小程序五子棋游戏的悔棋实现方法【附demo源码下载】
2019/02/20 Javascript
python实现的登录和操作开心网脚本分享
2014/07/09 Python
Django学习笔记之Class-Based-View
2017/02/15 Python
python使用正则表达式替换匹配成功的组
2017/11/17 Python
python实现狄克斯特拉算法
2019/01/17 Python
详解用python自制微信机器人,定时发送天气预报
2019/03/25 Python
python 将有序数组转换为二叉树的方法
2019/03/26 Python
pycharm激活码有效到2020年11月底
2020/09/18 Python
Python实现进度条和时间预估的示例代码
2020/06/02 Python
Python使用正则表达式实现爬虫数据抽取
2020/08/17 Python
Notino匈牙利:购买香水和化妆品
2019/04/12 全球购物
节省高达65%的城市景点费用:Go City
2019/07/06 全球购物
自然健康的概念:Natural Healthy Concepts
2020/01/26 全球购物
怎样从/向数据文件读/写结构
2014/11/23 面试题
文明村创建实施方案
2014/03/27 职场文书
初中同学会活动方案
2014/08/22 职场文书
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
倡议书作文
2015/01/19 职场文书
酒店工程部主管岗位职责
2015/04/16 职场文书
写给汽车4S店的创业计划书,拿来即用!
2019/08/09 职场文书
浅谈css清除浮动(clearfix和clear)的用法
2023/05/21 HTML / CSS