AngularJS表单中没有名称的错误

时间:2015-04-29 14:22:43

标签: angularjs angularjs-ng-form

我尝试禁用某个按钮,如果它所在的表单无效。但是,由于某种原因,与表单关联的$ error数组中包含十个无用错误的列表(因此按钮总是 off ),所有这些都具有以下形状:

{
    "$validators": {},
    "$asyncValidators": {},
    "$parsers": [],
    "$formatters": [
        null
    ],
    "$viewChangeListeners": [],
    "$untouched": true,
    "$touched": false,
    "$pristine": true,
    "$dirty": false,
    "$valid": false,
    "$invalid": true,
    "$error": {
        "required": true
    },
    "$name": "",
    "$options": null
}

如您所见,使用空的$ name属性,没有其他有用的信息。

1 个答案:

答案 0 :(得分:1)

我找到了一个解决方案,但不是最初发布的问题。问题是我正在使用ngIf隐藏表单的某些部分,包含输入。但在某些时候,我想到了将这个改为ngShow的神奇想法,直到一段时间之后我才意识到这种后果。所以有问题,Angular会考虑隐藏的元素,但不考虑不存在的元素进行表单验证。这听起来很合理。

但是,这是我第一次开始调试此应用程序中的表单属性,并且不知道$ name的原因是空的。可能是因为我使用"控制器作为"语法而不是将内容附加到$ scope?也许是因为这个,但无论如何我认为这是Angular的一个缺点。