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所必须要知道的一些
Mar 07 Javascript
js 代码集(学习js的朋友可以看下)
Jul 22 Javascript
javascript 函数调用的对象和方法
Jul 01 Javascript
Javascript 类、命名空间、代码组织代码
Jul 31 Javascript
一个获取第n个元素节点的js函数
Sep 02 Javascript
Bootstrap学习笔记之css样式设计(2)
Jun 07 Javascript
JS实现常见的查找、排序、去重算法示例
May 21 Javascript
VUE前后端学习tab写法实例
Aug 06 Javascript
vue移动端实现手机左右滑动入场动画
Jun 17 Javascript
JavaScript设计模式--桥梁模式引入操作实例分析
May 23 Javascript
在Vue中使用Echarts可视化库的完整步骤记录
Nov 18 Vue.js
Vant+postcss-pxtorem 实现浏览器适配功能
Feb 05 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中使用unset销毁变量并内存释放问题
2012/07/05 PHP
Zend Framework数据库操作方法实例总结
2016/12/11 PHP
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
jQuery不使用插件及swf实现无刷新文件上传
2014/12/08 Javascript
原生javascript获取元素样式
2014/12/31 Javascript
QQ登录背景闪动效果附效果演示源码下载
2015/09/22 Javascript
详解react服务端渲染(同构)的方法
2017/09/21 Javascript
JS判断数组那点事
2017/10/10 Javascript
axios中cookie跨域及相关配置示例详解
2017/12/20 Javascript
H5+C3+JS实现双人对战五子棋游戏(UI篇)
2020/05/28 Javascript
React父子组件间的传值的方法
2018/11/13 Javascript
layui实现左侧菜单点击右侧内容区显示
2019/07/26 Javascript
微信小程序实现禁止分享代码实例
2019/10/19 Javascript
Vue中的this.$options.data()和this.$data用法说明
2020/07/26 Javascript
微信小程序实现多张图片上传功能
2020/11/18 Javascript
[06:04]DOTA2国际邀请赛纪录片:Just For LGD
2013/08/11 DOTA
Django REST为文件属性输出完整URL的方法
2017/12/18 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
Pyinstaller 打包exe教程及问题解决
2019/08/16 Python
pandas read_excel()和to_excel()函数解析
2019/09/19 Python
Python使用re模块验证危险字符
2020/05/21 Python
基于python实现坦克大战游戏
2020/10/27 Python
python 通过exifread读取照片信息
2020/12/24 Python
美国销售第一的智能手机和平板电脑保护壳:OtterBox
2017/12/21 全球购物
古驰英国官网:GUCCI英国
2020/03/07 全球购物
外语系毕业生自荐信范文
2013/12/16 职场文书
大学生学业生涯规划
2014/01/05 职场文书
药学职务聘任书
2014/03/29 职场文书
音乐兴趣小组活动总结
2014/07/07 职场文书
2014预防青少年违法犯罪工作总结
2014/12/10 职场文书
入党转正介绍人意见
2015/06/03 职场文书
酒吧七夕情人节宣传语
2015/11/24 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
2016年优秀班主任先进事迹材料
2016/02/26 职场文书
创业计划书之物流运送
2019/09/17 职场文书
创业计划书之家教托管
2019/09/25 职场文书