我工作的Angular 13应用程序,我面临的问题时,声明类型模型的变量.
error属性没有初始值设定项,并且未在构造函数中明确赋值
为类型模型itemData声明items变量时出错,如下所示:
items:ItemsData[]
模型项数据
export interface ItemsData {
id:number;
itemNameER:string;
itemNameEN:string;
description:string;
}
component.ts
export class ItemsComponent implements OnInit {
items:ItemsData[];
constructor(private erpservice:ErpServiceService) { }
retrieveAllItems(pageNumber: number = 0): void {
this.erpservice.getAll(pageNumber)
.subscribe(
data => {
this.items=data.items;
console.log(data);
});
}
}
我需要接收我创建的itemsData模型上的函数retrieveAllItems
返回的结果,但它给了我错误。
那么如何解决这个问题,为什么会出现这个问题?
- 更新帖子**
在此行上获取retrieveAllItems
函数结果时仍有问题
this.items=data.items;
类型itemdata上不存在属性项
那么我该怎么做来解决这个问题呢?console.log(data);
数据返回如下:
{
"items": [
{
"id": 3,
"itemNameEN": "pen"
},
{
"id": 4,
"itemNameEN": "pencil"
},
{
"id": 5,
"itemNameEN": "pen2"
}
],
"pager": {
"numberOfPages": 1,
"currentPage": 1,
"totalRecords": 3
}
}
service.ts
getAll(pageNumber: number): Observable<ItemsData> {
let params = new HttpParams();
if (pageNumber)
params = params.append('pageNumber', pageNumber);
let httpOptions = {
params: params
};
return this.http.get<ItemsData>(baseUrl,httpOptions);
}
1条答案
按热度按时间5kgi1eie1#
发生这种情况的原因是您尚未使用值初始化
items
。解决此问题的方法有以下几种:
根据你的方法签名,
getAll()
返回Observable<ItemsData>
,但是这与你给我看的json-response不对应,它实际上返回类似Observable<DataWrapper>
的东西,然后你应该定义一个附加模型,看起来像这样:那么service.ts将如下所示: