这个option是传进来的没问题,我想把searchTags传出去, 不用事件发射,不用相同的service怎么才能将searchTags属性绑定到父组件的属性当中?
这个option是传进来的没问题,我想把searchTags传出去, 不用事件发射,不用相同的service怎么才能将searchTags属性绑定到父组件的属性当中?
组件间相互通信的方式:
父组件向子组件中传递数据,通过子组件中定义的@input property, 输入参数:
子组件中:
@Input() options: any;
父组件中:
<father>
<son [options]="opt"></son>
</father>
子组件向父组件中传递数据, 通过子组件中定义的@Output EventEmitter, 输出事件
子组件中:
<button (click)="onClick($event)">Click</button>
@Input() options: any;
@Output() changed: EventEmitter<any> = new EventEmitter<any>();
onClick(value) {
this.changed.next(value);
}
父组件中:
<father>
<son [options]="opt" (changed)="handleChanged($event)"></son>
</father>
handleChanged(value) {
console.info(value);////
}
export class ChildComponent{
constructor(@Inject(ParentComponent) private parent: ParentComponent){
}
searchTags:any
someMethod(){
this.parent.aPublicProperty = searchTags;
}
}
ng5后支持注入父组件
你不用事件,如何通知父组件呢,还是用事件输出吧
@Output optionsChange = new EventEmitter<number>();