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 相关文章推荐
一个轻量级的javascript库 pj介绍
Dec 19 Javascript
JS简单的轮播的图片滚动实例
Jun 17 Javascript
浅析jQuery中常用的元素查找方法总结
Jul 04 Javascript
jquery中的过滤操作详细解析
Dec 02 Javascript
JS实现的仿QQ空间图片弹出效果代码
Feb 23 Javascript
js实现的万能flv网页播放器代码
Apr 30 Javascript
第一篇初识bootstrap
Jun 21 Javascript
jQuery简单倒计时效果完整示例
Sep 20 Javascript
详解Weex基于Vue2.0开发模板搭建
Mar 20 Javascript
微信小程序webview与h5通过postMessage实现实时通讯的实现
Aug 20 Javascript
微信小程序实现多选框功能的实例代码
Jun 24 Javascript
js实现全选和全不选功能
Jul 28 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水印
2007/03/16 PHP
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
设为首页加入收藏兼容360/火狐/谷歌/IE等主流浏览器的代码
2013/03/26 Javascript
删除select中所有option选项jquery代码
2013/08/12 Javascript
jQuery拖拽插件gridster使用指南
2015/04/21 Javascript
浅析JSONP技术原理及实现
2016/06/08 Javascript
JS实现鼠标框选效果完整实例
2016/06/20 Javascript
Vue.js一个文件对应一个组件实践
2016/10/27 Javascript
微信小程序Server端环境配置详解(SSL, Nginx HTTPS,TLS 1.2 升级)
2017/01/12 Javascript
关于axios返回空对象的问题解决
2017/04/04 Javascript
详解Angular-cli生成组件修改css成less或sass的实例
2017/07/27 Javascript
node.js学习之断言assert的使用示例
2017/09/28 Javascript
javascript实现文件拖拽事件
2018/03/29 Javascript
Vue 页面切换效果之 BubbleTransition(推荐)
2018/04/08 Javascript
浅谈mvvm-simple双向绑定简单实现
2018/04/18 Javascript
详解Vue中watch的详细用法
2018/11/28 Javascript
vue不操作dom实现图片轮播的示例代码
2019/12/18 Javascript
JSONObject与JSONArray使用方法解析
2020/09/28 Javascript
深入理解NumPy简明教程---数组3(组合)
2016/12/17 Python
使用python存储网页上的图片实例
2018/05/22 Python
python 脚本生成随机 字母 + 数字密码功能
2018/05/26 Python
关于pytorch多GPU训练实例与性能对比分析
2019/08/19 Python
Python关于__name__属性的含义和作用详解
2020/02/19 Python
Window系统下Python如何安装OpenCV库
2020/03/05 Python
HTML5学习笔记之History API
2015/02/26 HTML / CSS
使用phonegap克隆和删除联系人的实现方法
2017/03/31 HTML / CSS
德国高尔夫商店:Golfshop.de
2019/06/22 全球购物
初二生物教学反思
2014/02/03 职场文书
质量承诺书怎么写
2014/05/24 职场文书
员工保密承诺书
2014/05/28 职场文书
培训研修方案
2014/06/06 职场文书
运动会加油口号
2014/06/07 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
导师对论文的学术评语
2015/01/04 职场文书
先进工作者个人总结
2015/02/15 职场文书
2017公司年会主持人开幕词
2016/03/04 职场文书