我有一个返回ApiResponse对象的服务,其中结果是Client对象的向量。该服务运行良好,数据正确接收。问题是,在我想要呈现信息的组件中,我需要过滤该服务的结果以在两个部分中显示它们,但由于滤波后的矢量始终为空,因此这是不可能的。另一方面,我不明白的是,为什么当我尝试在OnInit中为每个控制台显示矢量客户端时,它会将其返回为空,但如果它获取数据并显示它,则会在模板中使用它。筛选observable的响应并保存到本地变量
这是我的代码:
export class PartnersExpirationsComponent implements OnInit {
expirations: Client[] = [];
expirationsWithoutDays: Client[] = [];
expirationsWithDays: Client[] = [];
constructor(
private partnersExpirationsService: PartnersExpirationsService
) { }
ngOnInit() {
this.getData();
}
private getData(): void {
this.partnersExpirationsService.getClients()
.subscribe(
next => {
console.log(next);
this.expirations = next.results;
this.expirationsWithoutDays = this.expirations.filter(client => {
return client.extraDays === false;
});
this.expirationsWithDays = this.expirations.filter(client => {
return client.extraDays === true;
});
},
error => this.handleError
);
}
}
事情我经历,我并没有意识到?
编辑:这是控制台打印时它返回下一个模型:
export interface IARClient {
info: {
results: number,
version: string,
};
results: Client[];
}
export class Client {
constructor(
public name: string,
public lastName: string,
public numberDni: number,
public email: string,
public street: string,
public phone: number,
public alternatePhone: number,
public birthdate: Date,
public dateRegister: Date,
public balance: number,
public extraDays: boolean,
public district: District,
public state: State,
public gender: Gender,
public associationXClient: AssociationXClient,
public id?: number,
) { }
}
“当我试图显示每个控制台的矢量客户在OnInit它返回它空” - >可能是因为你不知道getClients()是异步的。 – Carsten
嗨@Carsten,除此之外,这是正确的,我明白,那么我该如何过滤这些结果呢?首先,过期向量填充了服务响应信息,然后我想使用填充信息的向量来创建两个新向量,但信息已经从该原始向量中过滤掉。这不可能吗?有什么办法可以控制这种异步吗? –
console.log(next)中的数据是什么样的;? – Carsten