2016-07-31 13 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 output

ответ

4

EventEmitter не должны быть использованы в сфере услуг. EventEmitter только для @Output() свойства в компонентах.

Вместо этого в услугах используются Observable и Subject.

+0

Любая ссылка, например? Является ли использование EventEmitter запрещенным или просто не рекомендуется? –

+0

Misko Hevery упомянул об этом в комментарии GitHub о том, что 'EventEmitter', даже если он в настоящее время основан на' Subject', может быть изменен в любое время без предварительного уведомления. В настоящее время нет известной проблемы с ее использованием для чего-то еще, кроме как упомянуто, что ваше приложение может сломаться с будущей версией Dart. –

Смежные вопросы