Angular 对于在object typescript中,如何获取对象的名称?

Angular 对于在object typescript中,如何获取对象的名称?,angular,typescript,Angular,Typescript,我正在尝试为()创建一个for,以验证模板中第一个状态为INVALID的字段,并且我需要该对象的名称 我试着做如下事情: for(var campoObrigatorio in formulario.controls){ if(formulario.controls[campoObrigatorio].status == "INVALID"){ var displayCampoObrigatorio = formulario.controls[campoObrigatorio];

我正在尝试为()创建一个
for
,以验证模板中第一个状态为INVALID的字段,并且我需要该对象的名称

我试着做如下事情:

for(var campoObrigatorio in formulario.controls){

  if(formulario.controls[campoObrigatorio].status == "INVALID"){
    var displayCampoObrigatorio = formulario.controls[campoObrigatorio];
    console.log(displayCampoObrigatorio)
    return ;
  }

}
显然我的逻辑是正确的,但我没有在这行中得到我的对象的名称:

var displayCampoObrigatorio = formulario.controls[campoObrigatorio];
下面是状态为“无效”的对象的dom三,我只需要对象的名称。例如:altura、Compremento等


我如何做到这一点?

您可以使用for…of语句而不是for…in。 因此,您的代码应该如下所示:

for(var campoObrigatorio of formulario.controls){

  if(campoObrigatorio.status == "INVALID"){
    console.log(campoObrigatorio);
    return 
  }

}
for…of语句创建一个循环,循环遍历iterable对象, 包括:内置字符串、数组、类似数组的对象(例如参数 或节点列表),类型Darray、Map、Set和用户定义的可编辑项。信息技术 调用自定义迭代挂钩,其中包含要为 对象的每个不同属性的值


关于..of.

的更多信息实际上您的循环中有一个现成的属性名,它实际上对应于
var campoobrigatio
,因此这应该满足您的需要:

for(var campoObrigatorio in formulario.controls){
  if (formulario.get(campoObrigatorio).status === "INVALID") { // I like to use get
    console.log(campoObrigatorio) // here is the name of the form control!
    return;
  }
}