【发布时间】:2014-11-05 11:34:37
【问题描述】:
我正在使用 Angular (1.3b17) 动态创建表单。我将表单的架构存储在一个对象中,并包括几个属性,这些属性定义了我的字段在该架构中的行为,例如,一个字段将具有“类型”(文本、文本区域、检查等)和“最大长度”属性。然后,我将元素的角度属性设置为对象的相应属性(例如 ng-maxlength="field.maxlength")。
我注意到一些奇怪的事情,我想看看这是否按预期工作。如果设置了属性,但未指定值 (ng-maxlength=""),则在键入任何内容后 $error 立即设置为 true,因为它期望最大长度为 0。类似地,使用表达式 (ng-maxlength=如果未设置该属性,“field.maxlength”) 的行为方式相同。
我创建了一个简单的Plunker,所以你可以看到我指的是什么。我个人希望如果未设置该值,则不会检查 maxlength,即使该属性存在。
<input id="txtName" ng-model="myval" type="text" name="name" ng-maxlength="" /><br />
{{myForm.name.$error}}
或者
<input id="txtName" ng-model="myval" type="text" name="name" ng-maxlength="someundefinedvalue" /><br />
{{myForm.name.$error}}
当然,我可以通过将 ng-maxlength 设置为较大的值来解决此问题,但这似乎并不理想。这种行为有原因吗?或者它可能是一个错误?
【问题讨论】:
标签: javascript angularjs