2016-06-07 54 views
1

在一个组件发出我的一些数据如何在角度2输出后监听事件?

@Output() search: EventEmitter<string> = 
     new EventEmitter<string>(); 

onChange(searchText) { 
    this.search.emit(searchText); 
    console.log(searchText); 
    }; 

我如何听“SEARCHTEXT”在另一个组件价值?另一个组件不是第一个组件的子组件。

+0

的([在角2全球活动]可能的复制http://stackoverflow.com/questions/34700438/global-events-in-angular- 2) – zpul

回答

2

您在定义输出的方式意味着父组件可以相应的事件发生时得到通知:

@Component({ 
    template: ` 
    <search (search)="doSomething($event)"></search> 
    `, 
    directives: [ SearchComponent ] 
}) 
export class SomeComponent { 
    doSomething(searchText:string) { 
    (...) 
    } 
} 

假设你所描述的器件的选择器是search

如果触发事件的组件与侦听的组件之间的关系不同,则应考虑在共享服务中使用observable。看到这个文档获取更多详情: