如何在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;
}