首页 > 解决方案 > 订阅不是一个函数 Angular

问题描述

我试图在订阅时返回值,我也得到了值,但也得到了错误

**内部服务**

getColumnValueg(): Observable<any>
{  console.log("service",this.colValueg);
   return (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 => 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 上的值

标签: angularobservableangular-components

解决方案


更改返回的方法Observable

getColumnValueg(): Observable<any>
{  console.log("service",this.colValueg);
   return Observable.of(this.colValueg);
}

或者

getColumnValueg(): Observable<any>
{  console.log("service",this.colValueg);
   return of(this.colValueg);
}

ngOnInit 的变化

   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);
    }

演示链接在这里 - https://stackblitz.com/edit/angular-srabjg


推荐阅读