Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular ionic分配HttpClient响应变量_Angular_Ionic Framework_Ionic2_Ionic3 - Fatal编程技术网

Angular ionic分配HttpClient响应变量

Angular ionic分配HttpClient响应变量,angular,ionic-framework,ionic2,ionic3,Angular,Ionic Framework,Ionic2,Ionic3,我正在学习ionic框架,想知道REST调用是如何正确完成的 我有一个RestProvider类,它可以给我一个产品列表 rest.ts getProduct(query: string) { return this.http.get(searchUri+query) } 在我的主页中,我想从响应中给一个局部变量赋值 home.ts ionViewDidLoad() { this.restProvider.getProduct(query).subscribe(it

我正在学习ionic框架,想知道REST调用是如何正确完成的

我有一个RestProvider类,它可以给我一个产品列表

rest.ts

  getProduct(query: string) {
    return this.http.get(searchUri+query)
  }
在我的主页中,我想从响应中给一个局部变量赋值

home.ts

  ionViewDidLoad() {
    this.restProvider.getProduct(query).subscribe(it => {
      console.log(it)
      this.products = it.result;
    })
  }
但是我在赋值行
this.products=it.result上得到一个错误

类型对象上不存在[ts]属性结果


如何创建响应的模型并将其分配给类变量?

返回的对象是响应体的JSON解析。错误在于Typescript现在知道返回的类型上是否存在
result
属性。所以你应该消除这种情况的歧义

使用模板参数将返回对象的类型声明为
get
,如
get
中所述。因此,这里应该提供一个包含
result
属性的模板参数

要么你知道它的类型,然后使用它,要么你不知道,然后使用
any
,你负责你所做的对象访问

你可以得到更多的细节


注意:不要使用
searchUri+query
作为url,因为它没有正确转义。您应该改为使用描述的
HttpParams

检查“it”是否包含result属性,如果是,请检查您是否以有效的方式访问“it”是JSON响应,并且“it.result”没有在任何地方显式定义,我该如何做?这将是因为Typescript。将服务更改为
this.http.get(searchUri+query)
,它应该可以工作。更好的是,如果您有一个表示响应的接口,请使用它而不是
any