如何评估对象内部的动态字符串键?
{{ row["emails.email"] }}
emails.email
是动态产生的。
emails.email
是一个字符串
就像ag-grid一样,如果您在json中传递字段
{
"field": "emails.email",
"title": "Email",
},
Data Like
"emails": {
"is_primary": true,
"email": "dhiraj.pandya@ymail.com"
}
在渲染时,它将转换为电子邮件值。
答案 0 :(得分:1)
您可以创建一种方法,从这样的路径的对象库中提取数据
getData(o , path) {
let result =o;
for(let p of path.split('.')){
if ( result[p] == undefined) {
return null;
}
result = result[p]
}
return result
}
模板
{{getData(row,'emails.email')}}
此管道版本
@Pipe({
name: 'getValue'
})
export class GetValuePipe implements PipeTransform {
transform(obj: any, path: string): any {
let result = obj;
for (let p of path.split('.')) {
if (result[p] == undefined) {
return null;
}
result = result[p]
}
return result
}
}
模板
{{data | getValue : fieldPath}}
答案 1 :(得分:0)
不太了解您的意思,但听起来您只是想显示电子邮件:
{{ row.emails.email }}
答案 2 :(得分:0)
我认为您应该应用if支票,例如:
<p *ngIf="field == 'emails.email'">{{ data.emails.email }}</p>
主要取决于您要显示的数据。另一种情况是:
let emails = {
email: 'test@test.com'
};
{{ row[emails.email] }}