子传父 @Output()
Angular通过事件(Event)来实现子组件通知父组件数据的改变,父组件需要订阅该事件。
1. 子组件定义@Output
子组件定义@Output
export class ChildComponent {
// EventEmitter ,这意味着它是一个事件
// new EventEmitter<string>() -
// 使用 Angular 来创建一个新的事件发射器,它发出的数据是 string 类型的。
@Output() newItemEvent = new EventEmitter<string>();
addNewItem(value: string) {
this.newItemEvent.emit(value);
}
}
子组件当数据发生变化时,调用这个addNewItem
方法既可。例如,html中
<label>Add an item: <input #newItem></label>
<button (click)="addNewItem(newItem.value)">Add to parent's list</button>
2. 父组件订阅事件
1、父组件的ts代码中,增加一个处理上面事件的方法,例如
addItem(newItem: string) {
// logic here
}
2、父组件的html中,订阅该事件。
<child-component (newItemEvent)="addItem($event)"></child-component>
事件绑定 (newItemEvent)='addItem($event)'
会把子组件中的 newItemEvent 事件连接到父组件的 addItem() 方法。
总结
使用@Input() 和 @Output() 可以很方便的实现父子组件之间的数据传递、共享。
可以同时使用 @Input() 和 @Output()
以上就是一文详解Angular父子组件间传数据的方法的详细内容,更多请关注编程网其它相关文章!