繁体   English   中英

对于对象打字稿,如何获取对象名称?

[英]For in object typescript, how I can get the name of the object?

我试图做一个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];

这是捕获状态为INVALID的对象的dom 3,我只需要对象的名称。 例如:altura,comprimento等...

在此处输入图片说明

我该怎么做?

您可以使用for ... of语句代替for ... in。 因此,您的代码应如下所示:

for(var campoObrigatorio of formulario.controls){

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

}

for ... of语句创建一个循环,循环访问可迭代对象,这些对象包括:内置String,Array,类似Array的对象(例如,参数或NodeList),TypedArray,Map,Set和用户定义的可迭代对象。 它使用要针对对象的每个不同属性执行的语句调用自定义迭代挂钩。

有关此处的更多信息。

实际上,您实际上在循环中就有了属性名称,它实际上对应于var campoObrigatorio ,因此这应该做您想要的:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM