我正在尝试创建一个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等...
我该怎么做?
答案 0 :(得分:2)
您可以使用for ... of语句代替for ... in。 因此您的代码应如下所示:
for(var campoObrigatorio of formulario.controls){
if(campoObrigatorio.status == "INVALID"){
console.log(campoObrigatorio);
return
}
}
for ... of语句创建一个循环遍历可迭代对象, 包括:内置字符串,数组,类似数组的对象(例如,参数 或NodeList),TypedArray,Map,Set和用户定义的可迭代对象。它 调用一个自定义迭代钩子,该钩子要为 对象的每个不同属性的值。
有关{.3的{.3}}的更多信息。
答案 1 :(得分:0)
实际上,您拥有了循环中的属性名称,它实际上与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;
}
}