Angular 角度动态关键点对象求值
如何计算对象内部的动态字符串键 {{row[emails.email]}Angular 角度动态关键点对象求值,angular,Angular,如何计算对象内部的动态字符串键 {{row[emails.email]} 电子邮件。电子邮件是动态的 email.email是一个字符串 和ag网格一样,如果您在json中传递字段 { "field": "emails.email", "title": "Email", }, Data Like "emails": { "is_primary": true, "email": "dhiraj.pandya@ymail.com"
电子邮件。电子邮件是动态的 email.email是一个字符串 和ag网格一样,如果您在json中传递字段
{
"field": "emails.email",
"title": "Email",
},
Data Like
"emails": {
"is_primary": true,
"email": "dhiraj.pandya@ymail.com"
}
渲染时,它将评估为电子邮件值。我不太明白你的意思,但听起来你只是想这样做来显示电子邮件:
{{ row.emails.email }}
我认为你应该申请一个if检查,比如:
<p *ngIf="field == 'emails.email'">{{ data.emails.email }}</p>
主要取决于您试图显示的数据。另一种情况是:
让电子邮件={
电邮:'test@test.com'
};
{{row[emails.email]}您可以创建一个方法,从路径的对象库中提取数据,如下所示
getData(o , path) {
let result =o;
for(let p of path.split('.')){
if ( result[p] == undefined) {
return null;
}
result = result[p]
}
return result
}
模板
这是管道版本
@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
}
}
模板
stackblitz demopass变量在方括号内,不带引号[],如{{row[emails.email]}我已经更新了我的答案,您需要一种方法来获取上述电子邮件路径的数据库。电子邮件是一个字符串而不是对象。能否请您共享您试图在插值中显示的数据结构部分,以便我能更好地理解它。电子邮件是动态的。email.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}}