angular组件交互

这周在写项目的原型,没遇到什么太大的问题,抽空把angular组件交互看了一下,记录一下。

组件之间的交互主要是在主从组件之间进行交互.在一个组件的模板里使用了另一个组件,这两个组件之间就是主从组件的关系。一个为宿主(父组件)组件,一个为子组件.

clipboard.png

在FatherComponent组件中使用的child组件,此时father就是child的父组件.

clipboard.png

从父组件到子组件

@Input()装饰器

就像angular其他指令的数据绑定一样,可以在子组件设置从外获取数据,用@Input()装饰器,就可以把类中的数据绑定到指令的属性上。

clipboard.png
调用的时候:

clipboard.png

clipboard.png

setter截取

将@Input装饰器放在setter方法上可以对获取的数据进行处理:

clipboard.png
这里父亲的年龄是22岁,假定儿子小10岁,在把年龄传过去时将儿子年龄减小十岁.

clipboard.png

clipboard.png
将@Input装饰器绑定到set方法之后就可以根据自己的需求过滤数据了

从子组件到父组件

子组件绑定父组件数据是单向的,因此子组件数据改变并不会反应到父组件中,要想从子组件的数据传递到父组件,可以让子组件暴露事件,父组件监听事件,从而在需要时从子组件获取数据。
首先在子组件中定义一个事件发射器,用来发送我们的事件,这个事件发射器其实是一个可观察对象,我们在子组件中通过@Output()装饰器把这个事件发射器暴露出去后,父组件通过注册这个属性来订阅这个可观察对象。

clipboard.png
父组件用一个事件处理方法来绑定这个属性:

clipboard.png
在这里当事件触发时,父组件将更新自己的年龄.
接下来就是定义何时触发事件了,通过.emit()触发事件发射器,在这里点击加一岁按钮就会增加子组件的年龄,并且发送事件更新父组件年龄

clipboard.png
通过.emit(this._age)成功把子组件的年龄传给父组件,这是通过事件完成的,当点击增加按钮时,父组件也会更新年龄.
这也实现了组件之间的双向绑定.

clipboard.png
点击加一岁:

clipboard.png
更多组件交互方法官方文档:angualr组件交互

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值