2016-07-31 64 views
0

所有表现良好的手册中,下面的代码:
WebSocketBroadcaster角2 eventEmitter不行

import {EventEmitter, Injectable} from "@angular/core"; 

@Injectable() 
export class WebSocketBroadcaster { 
    ee: EventEmitter<any> = new EventEmitter<any>(); 
} 

WebSocketService code

引导

bootstrap(AppComponent, [ 
    appRouterProviders, 
    disableDeprecatedForms(), 
    provideForms(), 
    WebSocketBroadcaster 
]) 

客户端组件code

console.log(data)在client.component不起作用
console.log(this.broadcaster.ee);输出 output

回答

4

EventEmitter不应该在服务中使用。 EventEmitter仅适用于组件中的@Output()属性。

服务中使用ObservableSubject代替。

+0

任何链接,例如?是使用EventEmitter禁止或只是不推荐? –

+0

Misko Hevery在GitHub发布的评论中提到,即使EventEmitter目前基于“Subject”,在任何时候都可能随时更改,恕不另行通知。目前还没有任何已知问题用于其他方面,除了上面提到的,您的应用可能会与未来的Dart版本冲突。 –