Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
AngularJS表单中没有名称的错误_Angularjs_Angularjs Ng Form - Fatal编程技术网

AngularJS表单中没有名称的错误

AngularJS表单中没有名称的错误,angularjs,angularjs-ng-form,Angularjs,Angularjs Ng Form,如果按钮所在的表单无效,我将尝试禁用该按钮。但是,由于某种原因,与表单关联的$error数组包含了十个无用错误的列表(因此按钮始终处于关闭状态),所有这些错误的形状如下: { "$validators": {}, "$asyncValidators": {}, "$parsers": [], "$formatters": [ null ], "$viewChangeListeners": [], "$untouched":

如果按钮所在的表单无效,我将尝试禁用该按钮。但是,由于某种原因,与表单关联的$error数组包含了十个无用错误的列表(因此按钮始终处于关闭状态),所有这些错误的形状如下:

{
    "$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属性,并且没有其他有用的信息。

我找到了一个解决方案,尽管不是针对最初发布的问题。问题是我故意使用ngIf隐藏表单的某些部分,其中包含输入。但在某个时刻,我突然想到了把这个节目改成ngShow的神奇想法,直到后来的一段时间我才意识到其后果。所以问题就出现了,Angular考虑了隐藏的元素,而不是表单验证中不存在的元素。这听起来逻辑合理


但是,这是我第一次开始调试这个应用程序中的表单属性,我不知道为什么$name是空的。可能是我使用了“controller as”语法而不是将内容附加到$scope吗?也许是因为这个原因,但无论如何,我认为这是Angular的一个缺点。

请从表单标记开始发布html。我没有这样做,因为它太大了,甚至包含了一些NGI。我完全理解,如果没有它,试图找出问题会更加复杂,但我认为肯定有一些“可识别”的错误导致$name属性为空。我能确保的是,我的表单中没有那么多必需的输入。我必须总共有5个,如果我忘了一个,最多6个,但肯定不是10个,肯定不是10个空的(即使填充字段,错误仍然存在,模型也会正确更改)。恐怕没有它,这将太困难了。把它缩减到最重要的部分。表单、输入、提交、任何带有验证的元素。来一下?我马上就来。我能说的另一件事是,它在不久前就开始工作了。我最初认为这是因为textAngular插件,但删除了它,出现了同样的问题。