从c#api

我有c#类test1

public class test1
    {
        public int testID{ get; set; }
        public string testName{ get; set; }
        public int testvalue{ get; set; }
}

在Angular中,我具有testService,该函数具有功能getObject

  getObject(param) {    
      return this.http.post(appSettings.BackEndUrl + '/getObject?testID='+param,'');     
    }

在Angular中,我也做了相同的类型类

export class test1Model{
    testID: Number;
    testName: String;
    testvalue: Number;
}

现在在某些组件中我想创建变量

testObjVariable: test1Model;

并将该api数据放入其中。 我正在尝试这样做

  ngOnInit() {
    this.testObjVariable = this.testService.getObject(this.testID);
  }

我收到错误

  

类型“可观察”缺少以下属性   输入“ test1Model”:testID,testName,testvalue

尽管从理论上讲我只是在传输那些类型的数据。我在做什么错了?

smalltiger67 回答:从c#api

您需要subscribe http通话

尝试这样:

ngOnInit() { 

  this.testService.getObject(this.testID).subscribe((data:test1Model) => {
   this.testObjVariable = data
  });
}
,

我同意@Adrita Sharma解决方案,但是为了摆脱该错误,您可能需要像这样向您的打字稿功能添加返回类型:

解决方案#1:

getObject(param) : Observable<test1Model> {    
  return this.http.post(appSettings.BackEndUrl + '/getObject?testID='+param,'');     
}

getObject(param) {    
  return this.http.post<test1Model>(appSettings.BackEndUrl + '/getObject?testID='+param,'');     
}

解决方案2:,您可以在分配变量的位置使用类似的方法

   ngOnInit() {
      this.testService.getObject(this.testID).subscribe((data: test1Model) => {
        this.testObjVariable = data
      });
   }

因为默认情况下,打字稿功能会返回Observable<test1Model>类型的对象,而该对象不能分配给test1Model类型。我希望这对您有意义。

本文链接:https://www.f2er.com/3145586.html

大家都在问