订阅可观察值
问题描述:
当我登录我的变量内的值订阅我有一个值,但外界这样做时,它得到了一个未定义???:订阅可观察值
this._postService.getConf("app/conf/conf.json")
.subscribe(res =>{
this.home = JSON.stringify(res);
console.log("value :" + this.home);
我想初始化我家变某一个值,我做它ngOnInit但它是说我很努力之外得到它值undefined:
这是我的函数:
答
那怎么观测工作。当来自服务器的响应到达时,传递给subscribe(...)
的回调被observable调用。
subscribe()
之外的console.log()
在连接到服务器之前执行。
答
我的ngOnInit()调用了一个从数据库获取数据的进程。 我预计在方法中更新的this.##
变量在调用后可用。如上所述,该调用传递给observable,这意味着该变量在ngOnInit()中不可用。但是,当显示HTML页面时,它们都被填充。
所以解决方案是在方法内完成所有需要的工作,然后引用将在HTML中填充的变量。
this.service.getCity(zip).subscribe(
data => {
if (data.errStatus == 0) {
console.log("data: " + data.xx.List);
this.xx.List = data.xx.List;
console.log("data2: " + this.xxList);
} else {
data.errText;
console.log(data.errText);
}
},
err => console.error(err),
() => console.log('done')
);
感谢您的回答,以及如何影响值给我的变量先生?我很轻松做到这一点ngOnInit将修复它 – Anna
“影响到我的变量先生的价值”是什么意思?什么变量?影响如何? –
对不起,我没有解释:我试图得到一个包含数据的json文件:ngOnInit在加载页面时打印数据,以及服务器链接我从文件中获取并影响到它我的var主页,所以在从服务器获取数据之前,我要获得主页的价值,以便通过我的服务推送它,并且我正在对ngOnInit执行此操作,请不要犹豫,询问是否需要更多信息 – Anna