如何从 return 模型的服务中获取 class 函数
How to get class function from a service that return a model
我有一个 class (userName),它的属性定义了一个模型(从 json 转换而来)。
这个class还有一个简单的功能就是return全名:
export class userName {
firstName: string;
lastName: string;
get fullName() {
return `${this.firstName} ${this.LastName}`
}
我有一项服务 return 一组用户:
getUsers() : Observable<userName[]>
{
return this.http.get<userName[]>(<path>);
}
现在 - 我从服务中获取集合到组件中。当我迭代集合时,我想像 fullName 属性 一样获取 firstName + LastNamne,但它不是服务 return 模型的一部分。有没有办法在不创建我自己的扩展的情况下达到它?
更新用户名 class 以获得构造函数:
export class userName {
firstName: string;
lastName: string;
get fullName() {
return `${this.firstName} ${this.LastName}`
}
constructor(jsonObject = {}) {
this.firstName = jsonObject.firstName ? jsonObject.firstName : null;
this.lastName = jsonObject.lastName ? jsonObject.lastName : null;
}
}
将 http 可观察响应映射到您的对象
this.usersService.getUsers()
.pipe(
map(res => {
return res.map((item) => new userName(item));
})
)
.subscribe(users => {
// console.log(users[0].fullName)
})
当您从服务接收到对象时,尝试使用地图功能:
getUsers().pipe(
map(user => users.map(user => {
return {
firstName: user.firstName,
lastName: user.lastName,
fullName: user.firstName + user.lastName
}))
);
Class:
export class userName {
firstName: string;
lastName: string;
get fullName() {
return `${this.firstName} ${this.lastName}`;
}
constructor(firstName: string, lastName: string) {
Object.assign(this, { firstName, lastName });
}
}
服务:
getUsers() : Observable<userName[]> {
return this.http.get<userName[]>(<path>).pipe(map((user: userName) => new userName(user.firstName, user.lastName));
}
我有一个 class (userName),它的属性定义了一个模型(从 json 转换而来)。 这个class还有一个简单的功能就是return全名:
export class userName {
firstName: string;
lastName: string;
get fullName() {
return `${this.firstName} ${this.LastName}`
}
我有一项服务 return 一组用户:
getUsers() : Observable<userName[]>
{
return this.http.get<userName[]>(<path>);
}
现在 - 我从服务中获取集合到组件中。当我迭代集合时,我想像 fullName 属性 一样获取 firstName + LastNamne,但它不是服务 return 模型的一部分。有没有办法在不创建我自己的扩展的情况下达到它?
更新用户名 class 以获得构造函数:
export class userName {
firstName: string;
lastName: string;
get fullName() {
return `${this.firstName} ${this.LastName}`
}
constructor(jsonObject = {}) {
this.firstName = jsonObject.firstName ? jsonObject.firstName : null;
this.lastName = jsonObject.lastName ? jsonObject.lastName : null;
}
}
将 http 可观察响应映射到您的对象
this.usersService.getUsers()
.pipe(
map(res => {
return res.map((item) => new userName(item));
})
)
.subscribe(users => {
// console.log(users[0].fullName)
})
当您从服务接收到对象时,尝试使用地图功能:
getUsers().pipe(
map(user => users.map(user => {
return {
firstName: user.firstName,
lastName: user.lastName,
fullName: user.firstName + user.lastName
}))
);
Class:
export class userName {
firstName: string;
lastName: string;
get fullName() {
return `${this.firstName} ${this.lastName}`;
}
constructor(firstName: string, lastName: string) {
Object.assign(this, { firstName, lastName });
}
}
服务:
getUsers() : Observable<userName[]> {
return this.http.get<userName[]>(<path>).pipe(map((user: userName) => new userName(user.firstName, user.lastName));
}