首页 > 解决方案 > 角度动态关键对象评估

问题描述

您如何评估对象内的动态字符串键?

{{ 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"
      }

在渲染时,它将评估为电子邮件值。

标签: angular

解决方案


您可以创建一种方法来从路径的对象库中提取数据,如下所示

 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}}

stackblitz 演示


推荐阅读