我一直在寻找,但我没有看到我正在寻找的答案。如果我的问题重复,请告诉我。
我正在尝试在typescript中创建一个包含自定义类型属性的对象。
问题是我的服务器提供了带url的对象。我不知道如何处理映射。如果我不解释这个问题,请原谅。我对这些都很陌生。顺便说一下,我正在使用Angular和Typescript
这是一个例子。对象如下:
export class Contact {
name : string;
address : {
street : string;
city : string;
}
}
但是,从我的服务器检索到的json就像:
{
"name" : "firstname lastname",
"address" : "http://localhost:5000/contacts/001"
}
如果我使用地址网址,我应该以json格式获取地址。
谢谢你的时间!
答案 0 :(得分:1)
解析您从服务器检索到的json,然后将其分配给您的属性,如下所示
...
.subscribe(
data => {
this.name = data.name
this.address = data.adress
})
注意一个好的做法是定义一个单独的服务来向服务器发出请求
答案 1 :(得分:1)
如果我假设您关于如何将服务器检索的数据映射到本地typescript对象的问题,一种方法是在类中创建一个静态方法以返回类的新实例,它采用类型为“any”的对象并在映射所有属性后返回一个对象。 http请求返回后或订阅后使用该方法取决于您的设置。
export class Address {
constructor(public name:string, description: string){
}
public static NewInstance(address: any){
//map here
return new Address(address.db_name, address.address);
}
}
export class Student {
constructor(
public name : string,
public classes: StudentClass[],
public address: Address
){
}
public static NewInstance(student: any){
let studentclasses = student.classes.map(n => StudentClass.NewInstance(n));
return new Student(student.firstname+' ' + student.lastname, studentclasses, Address.NewInstance(student.addresss));
}
}
export class StudentClass {
constructor(public: name: string);
public static NewInstance(studentclass: any){
return new StudentClass(studentclass.namefromdb);
}
}