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获取div高度的代码
Aug 09 Javascript
原创javascript小游戏实现代码
Aug 19 Javascript
解析window.open的使用方法总结
Jun 19 Javascript
javascript限制用户只能输汉字中文的方法
Nov 20 Javascript
jQuery+Ajax实现无刷新分页
Oct 30 Javascript
js实现网页收藏功能
Dec 17 Javascript
第一次接触神奇的Bootstrap导航条
Aug 09 Javascript
Vue.js每天必学之指令系统与自定义指令
Sep 07 Javascript
vue2.0使用swiper组件实现轮播效果
Nov 27 Javascript
js console.log打印对象时属性缺失的解决方法
May 23 Javascript
Layui事件监听的实现(表单和数据表格)
Oct 17 Javascript
vue组件传值的实现方式小结【三种方式】
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
YII视图整合kindeditor扩展的方法
2016/07/13 PHP
PHP项目多语言配置平台实现过程解析
2020/05/18 PHP
实例:尽可能写友好的Javascript代码
2006/10/09 Javascript
JS 动态加载脚本的4种方法
2009/05/05 Javascript
from表单多个按钮提交用onclick跳转不同action
2014/04/24 Javascript
javascript实现数组中的内容随机输出
2015/08/11 Javascript
修复jQuery tablesorter无法正确排序的bug(加千分位数字后)
2016/03/30 Javascript
浅析Javascript ES6中的原生Promise
2016/08/25 Javascript
jquery点击切换背景色的简单实例
2016/08/25 Javascript
原生JavaScript制作计算器
2016/10/16 Javascript
canvas仿iwatch时钟效果
2017/03/06 Javascript
vue.js选中动态绑定的radio的指定项
2017/06/02 Javascript
jQuery之动画ajax事件(实例讲解)
2017/07/18 jQuery
js for终止循环 跳出多层循环
2018/10/04 Javascript
微信小程序实现单选选项卡切换效果
2020/06/19 Javascript
微信小程序input抖动问题的修复方法
2021/03/03 Javascript
[00:26]TI7不朽珍藏III——冥界亚龙不朽展示
2017/07/15 DOTA
python计算程序开始到程序结束的运行时间和程序运行的CPU时间
2013/11/28 Python
pandas对指定列进行填充的方法
2018/04/11 Python
python中嵌套函数的实操步骤
2019/02/27 Python
PyQt4实时显示文本内容GUI的示例
2019/06/14 Python
获取django框架orm query执行的sql语句实现方法分析
2019/06/20 Python
Django中提示消息messages的设置方式
2019/11/15 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
阿联酋网上花店:Ferns N Petals
2018/02/14 全球购物
STRATHBERRY苏贝瑞包包官网:西班牙高级工匠手工打造
2020/11/10 全球购物
致垒球运动员加油稿
2014/02/16 职场文书
保密承诺书范文
2014/03/27 职场文书
优秀党员学习焦裕禄精神思想汇报范文
2014/09/10 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
公安干警正风肃纪心得体会
2016/01/15 职场文书
保安辞职申请书应该怎么写?
2019/07/15 职场文书
详解Django的MVT设计模式
2021/04/29 Python
Python源码解析之List
2021/05/21 Python
python爬取某网站原图作为壁纸
2021/06/02 Python
MySQL控制流函数(-if ,elseif,else,case...when)
2022/07/07 MySQL