我正在学习离子框架,想知道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]属性结果在对象类型上不存在
如何创建响应模型并将其分配给类变量?
答案 0 :(得分:1)
返回的对象是响应主体的JSON解析。错误是Typescript现在知道返回的类型上是否存在result
属性。因此,您应该消除这种情况。
您可以使用get
中的模板参数get<MyReturnedType>
声明返回对象的类型。因此,在这里,您应该提供一个包含result
属性的模板参数。
您要么知道它的类型,然后使用它,否则就不知道,然后使用any
,您将对您进行的对象访问负责。
您可以获取有关此Angular documentation page的更多详细信息。
注意:请勿使用searchUri+query
作为您的网址,因为该网址无法正确转义。您应该改用here中所述的HttpParams
。