Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/user-interface/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Angular模板中获取JSON属性值或键?要呈现JSON值?_Angular_Typescript_Angular Material - Fatal编程技术网

如何在Angular模板中获取JSON属性值或键?要呈现JSON值?

如何在Angular模板中获取JSON属性值或键?要呈现JSON值?,angular,typescript,angular-material,Angular,Typescript,Angular Material,我的问题是我无法在屏幕上呈现一些属性的JSON值 我正在使用角度材质表来呈现JSON响应 下面是在屏幕上呈现JSON的代码 第20天的响应 [ { "Name": "Bravo", "day15": "Shift 1" } ] [ { "Name": "Adam", "day20": "Shift 2" } ] **问题:** 由于更改了键值(第1天、第2天、…、第31天),如何在角度材质表模板上渲染它?基本上只需使用对象。键静态方法获取响应对象中存在的键数组

我的问题是我无法在屏幕上呈现一些属性的
JSON

我正在使用角度材质表来呈现JSON响应

下面是在屏幕上呈现JSON的代码

第20天的响应

[
 {
   "Name": "Bravo",
   "day15": "Shift 1"
 }
]
[
 {
   "Name": "Adam",
   "day20": "Shift 2"
 }
]
**问题:**
由于更改了键值(第1天、第2天、…、第31天),如何在角度材质表模板上渲染它?

基本上只需使用
对象。键
静态方法获取响应对象中存在的键数组。如果您确定总是有两个条目,只需选择一个不是
名称的条目即可:

public getDayVal(data){
  Object.keys(data).forEach((k) => {
    if (k !== 'Name') return data[k];
  })
}
如果不确定,则只需按
Regex
键来检测是否匹配:

public getDayVal(data){
  let re = /^day[0-9]+$/;
  Object.keys(data).forEach((k) => {
    if (re.test(k)) return data[k];
  })
}
然后在模板中使用上述辅助函数提取不同的关键点:

<td mat-cell *matCellDef="let col" class="align-left" > {{getDayVal(col)}} </td>

将解决您的所有问题。

IMO这是一个数据/元数据设计缺陷。您正在使用day的值作为shift键。无论请求参数是:{“Name”:“xxxxx”,“Day”:“yyyy”,“Shift”:“zzzzz”},响应数据的格式都应相同。键不应用于指示请求参数数据或任何其他数据值。很高兴我能够提供帮助
<td mat-cell *matCellDef="let col" class="align-left" > {{getDayVal(col)}} </td>
interface DayIfc {
  Name: string;
  Day: number;
  Shift: number;
}