angular2:管道返回对象的访问 属性
angular2: Access property of pipe returning object
我有一个自定义的 angular2 管道,它使用服务将 uid(字符串)转换为 UserInfo
对象。
@Pipe({name: 'userInfo'})
export class UserInfoPipe implements PipeTransform {
constructor(public _userService: UserService) {
}
transform(uid:string) : any {
/*let users = this._userService.users.filter((u)=> {
return u.uid==uid;
});
if(users.length==1) return users[0];
return null;*/
return {"Name":"hans","Age":13};
}
}
在我的组件中有一个绑定:
<Label row="4" text="Author: {{event?.author | userInfo | .Name}}" class="small-spacing"></Label>
event?.author
returns UID,通过 userInfo
管道传输后,我有一个对象。但是我怎样才能访问那个对象的属性呢?有语法吗? .Name
无效。
不确定这是否正确,但我会向您的管道传递额外的参数。
<Label row="4" text="Author: {{event?.author | userInfo : {"field": "Name"} }}" class="small-spacing"></Label>
在管道中我检查了这个参数并做了一些特殊的逻辑:
@Pipe({name: 'userInfo'})
export class UserInfoPipe implements PipeTransform {
constructor(public _userService: UserService) {
}
transform(uid:string, params) : any {
if (params.field && params.field == 'Name') {
/*let users = this._userService.users.filter((u)=> {
return u.uid==uid;
});
if(users.length==1) return users[0];
return null;*/
return {"Name":"hans","Age":13};
}
}
}
我刚发现
(event?.author | userInfo).Name
完全符合我的要求:它显示管道返回的对象的 Name
属性。
我有一个自定义的 angular2 管道,它使用服务将 uid(字符串)转换为 UserInfo
对象。
@Pipe({name: 'userInfo'})
export class UserInfoPipe implements PipeTransform {
constructor(public _userService: UserService) {
}
transform(uid:string) : any {
/*let users = this._userService.users.filter((u)=> {
return u.uid==uid;
});
if(users.length==1) return users[0];
return null;*/
return {"Name":"hans","Age":13};
}
}
在我的组件中有一个绑定:
<Label row="4" text="Author: {{event?.author | userInfo | .Name}}" class="small-spacing"></Label>
event?.author
returns UID,通过 userInfo
管道传输后,我有一个对象。但是我怎样才能访问那个对象的属性呢?有语法吗? .Name
无效。
不确定这是否正确,但我会向您的管道传递额外的参数。
<Label row="4" text="Author: {{event?.author | userInfo : {"field": "Name"} }}" class="small-spacing"></Label>
在管道中我检查了这个参数并做了一些特殊的逻辑:
@Pipe({name: 'userInfo'})
export class UserInfoPipe implements PipeTransform {
constructor(public _userService: UserService) {
}
transform(uid:string, params) : any {
if (params.field && params.field == 'Name') {
/*let users = this._userService.users.filter((u)=> {
return u.uid==uid;
});
if(users.length==1) return users[0];
return null;*/
return {"Name":"hans","Age":13};
}
}
}
我刚发现
(event?.author | userInfo).Name
完全符合我的要求:它显示管道返回的对象的 Name
属性。