我想要兩個不同的組件和兩個不同的路由,我想將信息從componentA傳遞到componentB。 我做了以下內容:1 - 創建一個處理 2-在componentA設置信息和事件傳遞給服務事件 3-嘗試在以componentBangular2(rc1)Observable not working
我的服務得到這個信息的服務:
@Injectable()
export class TokenService{
private tokenSource = new Subject<Object>();
token$ = this.tokenSource.asObservable();
setToken(token: string) {
this.tokenSource.next(token);
}
ComponentA:
@Component({
selector: 'login',
templateUrl: './login.html',
providers: [TokenService],
moduleId: module.id
})
export class LoginCmp {
constructor(private tokenService: TokenService) {
}
someMethod() {
this.tokenService.setToken('some dinamyc value');
}
....
以componentB:
@Component({
selector: 'cabecalho',
moduleId: module.id,
templateUrl: './cabecalho.html',
providers: [TokenService]
})
constructor(private tokenService: TokenService) {
tokenService.token$.subscribe(
data => {
console.log(data);
});
}
當我設置了一些信息,從ComponentA我的控制檯打印,也不要什麼,我把在以componentB與console.log(data)
都是在同一個NgModule組件?嘗試在我們的NgModule中註冊服務,而不是在這兩個組件中使用'providers'數組。 – candidJ
@candidJ RC1沒有NgModule – Gustavo
確實沒有錯誤顯示?我會建議你更新到'rc6' – candidJ