在使用我的角度应用程序时,在用户界面上将json响应从我的服务返回到下拉选择中,但是在我什至无法运行我的代码之前就遇到了这个问题 预先感谢您提供解决此问题的指导。
类型“ PolicyData []”缺少类型“可观察”的以下属性:_isScalar,源,运算符,提升和其他5个。ts(2740)
以下是我使用的代码 policy.component.ts
public policyinc: Observable<PolicyData[]> = of([]);
getIncCompany() {
this.policyService.getIncCompany()
.subscribe(data => {
console.log(data);
this.policyinc = data,
(error: any) => this.errorMessage = <any>error,
console.log(this.policyinc);
}
);
}
service.ts文件
getIncCompany(): Observable<PolicyData[]> {
const headers = new HttpHeaders({ 'Content-Type': 'application/json'});
let body = '{}';
return this.http
.post<PolicyData[]>(this.apiUrl, body, { headers: headers })
.pipe(
tap(data => console.log('getIncCompany: ' + JSON.stringify(data))),
catchError(this.handleError)
);
}
和html组件
<div class="col-lg-4 m-form__group-sub">
<mat-form-field class="example-full-width" appearance="outline">
<mat-label> Handicapped Discount
</mat-label>
<mat-select placeholder="Select">
<mat-option value="option" *ngFor="let polB of policyinc">{{ polB.bankName }}</mat-option>
</mat-select>
</mat-form-field>
</div>
答案 0 :(得分:0)
policyInc被声明为可观察的
在getIncCompany中,您订阅了policyService.getIncCompany,然后将返回数据分配给this.policyinc,但是返回数据不是Observable。
尝试将policyinc简化为PolicyData [];
点击操作符可用于登录控制台
public policyinc: PolicyData[];
getIncCompany() {
this.policyService.getIncCompany()
.pipe(tap(data => console.log(data)))
.subscribe(
{
next: data => this.policyinc = data,
error: error => this.errorMessage = error
});
}
此外,“将来,订阅将仅使用一个参数:下一个处理程序(一个函数)或一个观察者对象。”来自Subscribe is deprecated: Use an observer instead of an error callback