Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.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
Javascript 当未设置显式值且字段包含任何字符时,Angular ng maxlength标记字段无效_Javascript_Angularjs - Fatal编程技术网

Javascript 当未设置显式值且字段包含任何字符时,Angular ng maxlength标记字段无效

Javascript 当未设置显式值且字段包含任何字符时,Angular ng maxlength标记字段无效,javascript,angularjs,Javascript,Angularjs,我正在使用Angular(1.3b17)动态创建一个表单。我将表单的模式存储在一个对象中,并包含几个属性,这些属性定义了模式中字段的行为,例如字段将具有“type”(text、textarea、check等)和“maxlength”属性。然后,我将元素的角度属性设置为对象的相应属性(例如ng maxlength=“field.maxlength”) 我注意到了一些奇怪的事情,我想看看这是否按预期工作。如果设置了属性,但未指定任何值(ng maxlength=“”),则$error在键入任何内容后

我正在使用Angular(1.3b17)动态创建一个表单。我将表单的模式存储在一个对象中,并包含几个属性,这些属性定义了模式中字段的行为,例如字段将具有“type”(text、textarea、check等)和“maxlength”属性。然后,我将元素的角度属性设置为对象的相应属性(例如ng maxlength=“field.maxlength”)

我注意到了一些奇怪的事情,我想看看这是否按预期工作。如果设置了属性,但未指定任何值(ng maxlength=“”),则$error在键入任何内容后立即设置为true,因为它预期最大长度为0。类似地,如果未设置属性,则使用表达式(ng maxlength=“field.maxlength”)的行为与此相同

我创建了一个简单的示例,以便您可以看到我所指的内容。我个人认为,如果没有设置该值,即使属性存在,也不会进行maxlength检查

<input id="txtName" ng-model="myval" type="text" name="name" ng-maxlength="" /><br />
{{myForm.name.$error}}

{{myForm.name.$error}


{{myForm.name.$error}

当然,我可以通过将ng maxlength设置为较大的值来解决这个问题,但这似乎并不理想。这种行为有什么原因吗?或者它可能是一个bug?

看起来就像是在表单控件上为它定义了指令。所以,你的问题的答案是,它一直以来都是这样的,它可能被认为是一个bug,但在这一点上,它将是一个突破性的改变,不太可能被改变。

Bummer。我想这很公平。
<input id="txtName" ng-model="myval" type="text" name="name" ng-maxlength="someundefinedvalue" /><br />
{{myForm.name.$error}}