请检查此GitHub存储库https://github.com/nileshzala005/Service-demo
userService在根级别注册。
[我想将getUserLogin可观察的值获取到SharedModule的UserComponent中。当用户单击从HomeComponent中声明为HomeModule的按钮“向用户组件发送值”时,>]
根目录级别的UserService
userLogin = new Subject<string>(); constructor() { } sendUserLogin(user: string) { console.log("value received at user service ", user); this.userLogin.next(user); } getUserLogin(): Observable<string> { return this.userLogin.asObservable(); }
homeModules中的HomeComponent
export class HomeComponent implements OnInit { constructor(private userService: UserService) { } ngOnInit() { } onClick() { console.log("value is send from home component", "Nilesh") this.userService.sendUserLogin("Nilesh"); } }
共享模块中的用户组件
export class UserComponent implements OnInit {
constructor(private userService: UserService) { }
ngOnInit() {
this.userService.getUserLogin().subscribe(res => {
/// here it should receive but not able to get it
console.log("user component should get value here ", res);
});
}
}
请在根级别注册此GitHub存储库https://github.com/nileshzala005/Service-demo userService。我想将getUserLogin可观察的值获取到SharedModule的UserComponent中。...
您需要使用BehaviorSubject而不是Subject来获取发出的值。检查这篇文章的解释。语法有些过时,但仍遵循相同的概念
尝试使用BehaviorSubject
代替Subject
。即使将在发出值后进行订阅,也会将最后一个值发送到订阅。