【发布时间】:2018-01-27 20:57:09
【问题描述】:
我有一个共享服务SharedService
@Injectable()
export class SharedService {
private title = new BehaviorSubject<string>("");
currentMessage = this.title.asObservable();
constructor() { }
setData(val: string) {
this.title.next(val);
}
}
我有一个组件,我可以在其中获取新数据
export class Fill implements OnInit {
public title;
constructor(public shared: SharedService) {
}
ngOnInit() {
this.shared.setData(this.title);
}}
还有组件信息,我想在其中读取新数据 导出类 InfoComponent 实现 OnInit {
constructor(public shared: SharedService) {
this.title = ''; }
ngOnInit() {
console.log('i am title from info ')
this.shared.currentMessage.subscribe(title => this.title = title)
console.log(this.shared.currentMessage);
console.log(this.title);
}}
在 console.log 的两种情况下,我都会得到包含我需要的信息的对象 - 但我无法检索它的值。所以,在我的控制台上看起来像
但是如果尝试类似
console.log(this.shared.currentMessage.source.source.value);
它说属性“源”受保护,只能在“Observable”类及其子类中访问。
this.shared.currentMessage.value
this.title.value
也不行... 我怎样才能检索一个或另一个的数据(值)?
【问题讨论】:
-
ngOnInit嵌套在InfoComponent内的构造函数中。 -
是的。 @wostex 正确地提到了它。将 ngOninit 放在构造函数之外。
标签: javascript angular typescript