我正在尝试从ASP.net核心Web API获取数据并在ionic 3应用程序内部进行访问。尝试从asp.net获取数据。但是我想过滤离子应用程序中的检索数据。我编写了以下代码,以使用订阅功能过滤产品。
import {ProductProvider} from '../../providers/product/product';
constructor(
public navCtrl: NavController,
private camera: Camera,
public alertCtrl:AlertController,
public actionsheet:ActionSheetController,
public image:UploadProvider,
public pro:ProductProvider) {
}
getMyproduct() {
this.pro.getPostedProducts()
.then(data => {
this.products = data;
console.log(data);
this.id = this.sellerID.id;
this.products.subscribe(productevents => {
let productevent = productevents
this.myProduct_arr = productevent.filter(event => {
return event.sid=this.sellerID;
})
})
})
}
<ion-list>
<ion-item *ngFor="let product of myProduct_arr">
<p> {{product.name}}</p>
<p> {{product.brand}}</p>
<p> {{product.price}}</p>
</ion-item>
</ion-list>
但是当我运行它时,出现以下错误:
TypeError: _this.products.subscribe is not a function
谁能说出这是什么原因?
答案 0 :(得分:0)
在使用.subscribe的代码段中:
this.products.subscribe(productevents=>{
您正在对对象this.products使用subscription,但是在控制器中未将product声明为可观察的产品。
似乎在.then
函数内部,您正在引用要使用的数据...
this.products = data;
在此行上,您将this.products设置为.getPostedProducts()函数的响应。如果一个依赖于成功从另一个传递的响应,我建议将.then
与.finally
链接。您可以在这篇文章中了解它:
What is the difference between then and finally in a promise?