node.js - 获取 Observable 的对象并使用 Angular 转换为 Array
问题描述
早上好。
我得到以下对象,需要处理结果(数组)中的数据,但我的方法无法正常工作。
Object
currentPage: 1
firstRowOnPage: 1
lastRowOnPage: 6
pageCount: 1
pageSize: 10
results: Array(6)
0: {id: 1256, name: "Erik", address: "Centro", addressComplement: "Centro", cep: "11212-122", …}
1: {id: 1014, name: "Everson Luiz", address: null, addressComplement: null, cep: null, …}
2: {id: 1011, name: "Everson Luiz Silva", address: null, addressComplement: null, cep: null, …}
3: {id: 1284, name: "Fulado de Tal", address: null, addressComplement: null, cep: null, …}
4: {id: 1012, name: "Jackson Alexandre", address: null, addressComplement: null, cep: null, …}
5: {id: 1013, name: "Robson Henrique Silva", address: "", addressComplement: "", cep: "", …}
length: 6
__proto__: Array(0)
rowCount: 6
__proto__: Object
当我尝试访问数据时,我收到一条错误消息,指出我的对象不是数组,因此它没有像 MAP 和 PUSH POP FILTER 这样的数组的典型方法。
这是我的对象,这是我的方法。
private dataStore = {
treasurers: []
};
private loadAllTreasurers(): void {
const unit = auth.getCurrentUnit();
this.treasureService.getTreasurers(unit.id).subscribe((data: Treasurer[]) => {
console.log(data)
this.dataStore.treasurers = data;
});
}
<!--Service-->
getTreasurers(unitId): Observable<Treasurer[]> {
const url = '/treasury/treasurers/unit/' + unitId;
return this.http
.get<Treasurer[]>(url);
}
我从 AspnetCore 2.2 服务器获取对象
解决方案
你的问题是你Array
不是data
对象。它在data.results
。data
看起来像一个带有页面响应信息的对象。你想要data.results
而不是data
对象。
你应该只需要更新这个:
this.treasureService.getTreasurers(unit.id).subscribe((data: object) => {
console.log(data)
this.dataStore.treasurers = data.results; // <-- .results
});
我不确定您的data
对象是否有类型,所以我将其设置object
为占位符
推荐阅读
- java - EventListener接口中的handleEvent方法未在实现类中实现
- sql - 如何在查询中将文本更改为数字
- ios - 以编程方式在没有情节提要的 UITextField 上调用 resignFirstResponder
- inno-setup - 卸载时删除与文件掩码匹配的文件/快捷方式
- mysql - 如何返回包括空外键值的所有连接表
- c++ - 动态分配(在堆上)的对象的析构函数是否会在返回函数中自动调用?
- javascript - 如何使网格居中
- html - 如何将 CSS 样式应用于网格中的整行?
- html - 尽管我使用顶部,但位置粘性不适用于 flex child
- sql-server - 自定义列包含多个值