Angular2(rc1)观察对象似乎不起作用

问题描述 投票:1回答:2

我想要具有2条不同路径的两个不同组件,我想将信息从组件A传递到组件B。

我做了以下事情:

  1. 创建处理事件的服务
  2. 在componentA处设置信息并传递给服务事件
  3. 尝试在componentB上获取此信息

我的服务:

@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 dynamic 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设置一些信息时,我的控制台从不打印使用console.log(data)放置在ComponentB上的内容>

我想要两个具有不同路由的不同组件,我希望将信息从组件A传递到组件B。我做了以下操作:创建一个处理事件的服务在...

events angular observable angular2-services
2个回答
0
投票

首先,您的组件正在使用TokenService的不同实例。您将需要在它们之间使用共享服务。


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.