Angular中父子组件间怎么传递数据?下面本篇文章就来给大家介绍一下Angular中父组件向子组件传数据、子组件向父组件传数据的方法,希望对大家有所帮助!
组件之间传递数据,最主要的就是父子组件之间传递数据, 例如:
<parent-component> <child-component></child-component> </parent-component>
父组件传入数据给子组件,同时,子组件数据发生变化是,希望能够通知父组件。
Angular 中,@Input) 和 @Output) 为子组件提供了一种与其父组件通信的方法。 @Input) 允许父组件更新子组件中的数据。相反,@Output) 允许子组件向父组件发送数据。【相关教程推荐:《angular教程》】
父传子 @Input)
1. 子组件定义@Input)
子组件中的 @Input) 装饰器表示该属性可以从其父组件中获取值。
例如:
export class ChildComponent { @Input) message: string; }
-
增加@Input) 装饰器的变量,除了数据可以从父组件传入后,其他逻辑和普通变量一致;
-
子组件的html代码中,既可使用message这个变量, 例如:
<p> Parent says: {{message}} </p>
2. 父组件传递变量给子组件
当父组件调用子组件时,可以把父组件的变量(如messageToChild
) 传递给子组件
<child-component [message]="messageToChild"></child-component>
子传父 @Output)
Angular通过事件(Event)来实现子组件通知父组件数据的改变,父组件需要订阅该事件。
1. 子组件定义@Output
子组件定义@Output
export class ChildComponent { // EventEmitter ,这意味着它是一个事件 // new EventEmitter<string>) - // 使用 Angular 来创建一个新的事件发射器,它发出的数据是 string 类型的。 @Output) newItemEvent = new EventEmitter<string>); addNewItemvalue: string) { this.newItemEvent.emitvalue); } }
子组件当数据发生变化时,调用这个addNewItem
方法既可。例如,html中
<label>Add an item: <input #newItem></label> <button click)="addNewItemnewItem.value)">Add to parent's list</button>
2. 父组件订阅事件
1、父组件的ts代码中,增加一个处理上面事件的方法,例如
addItemnewItem: string) { // logic here }
2、父组件的html中,订阅该事件。
<child-component newItemEvent)="addItem$event)"></child-component>
事件绑定 newItemEvent)='addItem$event)'
会把子组件中的 newItemEvent 事件连接到父组件的 addItem) 方法。
总结
-
使用@Input) 和 @Output) 可以很方便的实现父子组件之间的数据传递、共享。
-
可以同时使用 @Input) 和 @Output)
更多编程相关知识,请访问:编程学习!!
以上就是聊聊Angular中父子组件间怎么传递数据的详细内容,更多请关注风君子博客其它相关文章!