2016-07-31 65 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版本衝突。 –