十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
今天就跟大家聊聊有关Angular父子组件怎么实现数据传递,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。
站在用户的角度思考问题,与客户深入沟通,找到怀远网站设计与怀远网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广、申请域名、雅安服务器托管、企业邮箱。业务覆盖怀远地区。
1. 摘要
组件之间传递数据,最主要的就是父子组件之间传递数据, 例如:
父组件传入数据给子组件,同时,子组件数据发生变化是,希望能够通知父组件。
Angular 中,@Input() 和 @Output() 为子组件提供了一种与其父组件通信的方法。 @Input() 允许父组件更新子组件中的数据。相反,@Output() 允许子组件向父组件发送数据。【相关教程推荐:《angular教程》】
2.1. 子组件定义@Input()
子组件中的 @Input() 装饰器表示该属性可以从其父组件中获取值。
例如:
export class ChildComponent { @Input() message: string; }
1、增加@Input() 装饰器的变量,除了数据可以从父组件传入后,其他逻辑和普通变量一致;
2、子组件的html代码中,既可使用message这个变量, 例如:
Parent says: {{message}}
2.2. 父组件传递变量给子组件
当父组件调用子组件时,可以把父组件的变量(如messageToChild
) 传递给子组件
子组件中,可以更改
message
这个传入的变量,但是其作用域只在子组件中,父组件拿不到更改后的结果。(如何传给父组件,请接着看)
Angular通过事件(Event)来实现子组件通知父组件数据的改变,父组件需要订阅该事件。
3.1. 子组件定义@Output
子组件定义@Output
export class ChildComponent { // EventEmitter ,这意味着它是一个事件 // new EventEmitter() - // 使用 Angular 来创建一个新的事件发射器,它发出的数据是 string 类型的。 @Output() newItemEvent = new EventEmitter (); addNewItem(value: string) { this.newItemEvent.emit(value); } }
子组件当数据发生变化时,调用这个addNewItem
方法既可。例如,html中
3.2. 父组件订阅事件
1、父组件的ts代码中,增加一个处理上面事件的方法,例如
addItem(newItem: string) { // logic here }
2、父组件的html中,订阅该事件。
事件绑定 (newItemEvent)='addItem($event)'
会把子组件中的 newItemEvent 事件连接到父组件的 addItem() 方法。
使用@Input() 和 @Output() 可以很方便的实现父子组件之间的数据传递、共享。
可以同时使用 @Input() 和 @Output()
看完上述内容,你们对Angular父子组件怎么实现数据传递有进一步的了解吗?如果还想了解更多知识或者相关内容,请关注创新互联行业资讯频道,感谢大家的支持。