我有几个 model.ts 文件。当我使用 httpClient 时,我得到了一个 JSON 对象,但它不能正常工作,因为我必须反序列化它们:How to recursively init class get by httpclient。
但从那时起,我找到了“类转换器”项目,它可以帮助我反序列化我的所有模型。我的服务有:
public method(cli: any): Observable<A> {
const formData = new FormData();
formData.append('cli', JSON.stringify(cli));
return this.http.post<A>('/my/url',
formData, {
withCredentials: true
}).pipe(first(),
map(res => {
return plainToClass(A, res);
})
);
}
对于模型,例如:
// A.model.ts
import { Type } from 'class-transformer';
import { B } from './B.model';
export class A {
// Some properties
@Type(() => B)
b: B[]
// Some methods
}
和乙
// B.model.ts
import { Type } from 'class-transformer';
import { A } from './A.model';
export class B {
// Some properties
@Type(() => A)
a: A[]
// Some methods
}
但是,在编译时我得到了“循环依赖”并且确实存在循环依赖......
寻找解决方案,我知道我可以使用 Barrel ( https://github.com/typestack/class-transformer/issues/230 ) 但它不起作用。我唯一的限制是我必须保持这种关系->(或者一些非常相似的东西,因为我不能修改后端,所以我将使用 httpClient 接收数据)。
关于如何修复循环依赖的任何想法?