Angular 使用角度观测值的问题
正在尝试检索这些值来自服务上的查询集。必需在警报中以消息形式显示所述查询的结果 查询是功能性的,可以提取我需要的数据 客户端服务Angular 使用角度观测值的问题,angular,ionic-framework,Angular,Ionic Framework,正在尝试检索这些值来自服务上的查询集。必需在警报中以消息形式显示所述查询的结果 查询是功能性的,可以提取我需要的数据 客户端服务 searchType(his: string): Observable<any> { return this.http.get(`${environment.url}rute?param=${his}`, this.httpOptions); } 应用console.log可以获得我需要的数据 从数据库中检索数据 请验证i
searchType(his: string): Observable<any> {
return this.http.get(`${environment.url}rute?param=${his}`, this.httpOptions);
}
应用console.log
可以获得我需要的数据
从数据库中检索数据
请验证idMensaje:30121的观察结果强>
问题
this.client.searchType(1).subscribe(val => { console.log(val.column) });
this.client.searchType(1).subscribe(val => { this.ValueOpt = val.Column});
console.log(this.ValueOpt )
我尝试用前面的方法将从查询中获得的数据添加到变量ValueOpt中,但是没有。当我修改我的指令以便能够在this.ValueOpt中包含此查询的结果时
该事件中的程序是真实的
我建议
ngOnInit() {
this.foo()
}
async foo() {
const val = await this.client.searchType(1).toPromise();
console.log(val.column)
}
在上面的代码中,您有:
ngOnInit() {
this.client.searchType(1).subscribe(val => { this.ValueOpt = val.Column});
console.log(this.ValueOpt);
}
在这种情况下,ValueOpt变量将保持未定义状态(或上次设置的值),因为subscribe方法异步流动,同步流动中的代码将继续,这使得它的行为不受欢迎。如果您想使用rxjs,只需按以下方式更改代码:
ngOnInit() {
this.client.searchType(1).subscribe(val => {
this.ValueOpt = val.Column
console.log(this.ValueOpt);
});
}
您可能应该解释为什么。如何获取val.column out foo()的值?在subscribe之外,this.ValueOpt会丢失该值,需要其他方法的值。然后,您可以使用该方法进行订阅。
ngOnInit() {
this.client.searchType(1).subscribe(val => {
this.ValueOpt = val.Column
console.log(this.ValueOpt);
});
}