我在离子 2 中工作。我正在尝试从火力基地获取 json。我使用了可观察但显示错误。这是我的家。
import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import { DetailsPage} from'../details/details';
import { MyProvider } from '../../providers/my/my';
import 'rxjs/Rx';
import {Observable} from 'rxjs/Observable';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
donorList: Observable<any[]>;
constructor(public nav: NavController, public data: MyProvider) {
this.data.loadData().subscribe(k => {
this.donorList = k;
});
}
}
我的 JSON 文件是
{
"s2pDonors": [{
"name": "Dinesh",
"bldgrp": "o+",
"city": "Nagpur"
}, {
"name": "Dinesh",
"bldgrp": "o+",
"city": "Nagpur"
},
{
"name": "Suresh",
"bldgrp": "A+",
"city": "Nagpur"
},
]
}
创建安卓.apk文件时,它向我显示以下错误
Type '{}[]' is not assignable to type 'Observable<any[]>'.
L64: this.data.loadData().subscribe(k => {
L65: this.donorList = k;
L66: console.log(this.donorList);
我的提供程序定义了 loadData(( 函数
export class MyProvider {
list : Array<any>;
constructor(public afd: AngularFireDatabase) {
}
loadData()
{
return this.afd.list('/s2pDonors/').valueChanges();
};
}
任何人都可以提供帮助...
在你的构造函数中,你订阅了一个可观察量,所以你从该可观察量接收的数据不是可观察量。换句话说,变量 K 不是可观察的。因此,您需要从数据列表中删除可观察。这是您需要更改的代码
export class HomePage {
donorList;
constructor(public nav: NavController, public data: MyProvider) {
this.data.loadData().subscribe(k => {
this.donorList = k;
});
}
附注:
如果要返回可观察量,则需要订阅主题。以下是有关可观察与主题的详细信息