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实现大转盘抽奖游戏实例
Jun 24 Javascript
JavaScrip调试技巧之断点调试
Oct 22 Javascript
JavaScript正则表达式简单实用实例
Jun 23 Javascript
如何重置vue打印变量的显示方式
Dec 06 Javascript
详解vue-cli脚手架中webpack配置方法
Aug 22 Javascript
值得收藏的八个常用的js正则表达式
Oct 19 Javascript
Vue实现一个图片懒加载插件
Mar 11 Javascript
Vue-cli3简单使用(图文步骤)
Apr 30 Javascript
微信小程序bindtap事件与冒泡阻止详解
Aug 08 Javascript
jQuery高级编程之js对象、json与ajax用法实例分析
Nov 01 jQuery
Vue Router的手写实现方法实现
Mar 02 Javascript
uni-app使用countdown插件实现倒计时
Nov 01 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
支持oicq头像的留言簿(二)
2006/10/09 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
解决file_get_contents无法请求https连接的方法
2013/12/17 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
Js动态添加复选框Checkbox的实例方法
2013/04/08 Javascript
浅析js中取绝对值的2种方法
2013/07/09 Javascript
Js放到HTML文件中的哪个位置有什么区别
2013/08/21 Javascript
jQuery实现的图片分组切换焦点图插件
2015/01/06 Javascript
百度地图自定义控件分享
2015/03/04 Javascript
jquery控制页面部分刷新的方法
2015/06/24 Javascript
JS实现网页标题随机显示名人名言的方法
2015/11/03 Javascript
JavaScript的Backbone.js框架入门学习指引
2016/05/07 Javascript
微信小程序 页面跳转及数据传递详解
2017/03/14 Javascript
Vue中保存用户登录状态实例代码
2017/06/07 Javascript
代码详解javascript模块加载器
2018/03/04 Javascript
webpack源码之loader机制详解
2018/04/06 Javascript
JavaScript代码实现简单计算器
2020/12/27 Javascript
[32:47]完美世界DOTA2联赛 GXR vs IO 第二场 11.07
2020/11/09 DOTA
Python3之文件读写操作的实例讲解
2018/01/23 Python
浅谈django三种缓存模式的使用及注意点
2018/09/30 Python
python/sympy求解矩阵方程的方法
2018/11/08 Python
scrapy-redis的安装部署步骤讲解
2019/02/27 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
使用Python-OpenCV消除图像中孤立的小区域操作
2020/07/05 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
HTML5 Video/Audio播放本地文件示例介绍
2013/11/18 HTML / CSS
新西兰优惠网站:Treat Me
2019/07/04 全球购物
大学本科生的个人自我评价
2013/12/09 职场文书
园林资料员岗位职责
2013/12/30 职场文书
会计职业生涯规划范文
2014/01/04 职场文书
百度吧主申请感言
2014/01/12 职场文书
《一件运动衫》教学反思
2014/02/19 职场文书
2014年助理工程师工作总结
2014/11/14 职场文书
2015年科研工作总结范文
2015/05/13 职场文书
2015年乡镇妇联工作总结
2015/05/19 职场文书
SQL Server中的逻辑函数介绍
2022/05/25 SQL Server