我试图在订阅时返回值,我也得到了值,但也得到了错误
**内部服务**
getColumnValueg(): Observable<any>
{ console.log("service",this.colValueg);
return (this.colValueg);
}
** FormComponent **
ngOnInit()
{
// perform the task of sending and receiving value.
console.log("inint form-lib component",this.UserFormArray);
this.UserFormArray = this.service.getFormDetails();
this.service.getColumnValueg().subscribe(data => this.g1 = data);
this.service.getColumnValueg().subscribe(data => this.lg1 = data);
this.service.getColumnValueg().subscribe(data => this.md1 = data);
console.log('userformarray',this.UserFormArray);
console.log(this.g1,this.lg1,this.md1);
}
但是在我从按钮单击事件中调用了这些服务方法之后没有调用数据,然后显示了值。我收到错误订阅不是函数。我尝试使用of,因为它不起作用。 我正在尝试在页面加载时获取值,但无法在页面加载时获取数据
已编辑
问题已解决,但提出的下一个问题是我无法在nginit上获取值
答案 0 :(得分:1)
Observable
getColumnValueg(): Observable<any>
{ console.log("service",this.colValueg);
return Observable.of(this.colValueg);
}
OR
getColumnValueg(): Observable<any>
{ console.log("service",this.colValueg);
return of(this.colValueg);
}
ngOnInit()
{
// perform the task of sending and receiving value.
console.log("inint form-lib component",this.UserFormArray);
this.UserFormArray = this.service.getFormDetails();
this.service.getColumnValueg().subscribe(data => {
console.log(" ColumnValue data " , data);
});
console.log('userformarray',this.UserFormArray);
console.log(this.g1,this.lg1,this.md1);
}
答案 1 :(得分:0)
像this.colValueg
一样不是可观察的。您必须将其转换为一个。您可以使用of
来做到这一点:
如果您使用的是Rxjs6:
import { of } from 'rxjs';
...
colValueg = 'Some Value';
...
getColumnValueg(): Observable < any > {
console.log("service", this.colValueg);
return of(this.colValueg);
}
如果您使用的是Rxjs5:
import { Observable } from "rxjs/Observable";
...
colValueg = 'Some Value';
...
getColumnValueg(): Observable < any > {
console.log("service", this.colValueg);
return Observable.of(this.colValueg);
}