我有一个表单,它有一个输入字段和三个复选框。根据选择哪个复选框,该字段上的最大长度需要更改。我有这样ng-maxlength为什么不重新评估?
<input placeholder="ID" type="text" id="form_ID" name="searchId" autofocus
data-ng-model="vm.searchCriteria.searchId" data-ng-required="vm.isSearchIdRequired"
data-ng-minlength="1" data-ng-maxlength="{{searchIdMaxLength}}"
data-ng-class="{'input-error': vm.isSearchIdValid}">
和一个复选框
<input type="checkbox" id="checkbox1" class="hidden-field"
data-ng-model="vm.searchCriteria.searchIdInSrId" data-ng-checked="vm.searchCriteria.searchIdInSrId"
data-ng-change="processSearchIdOptionsChange()">
所以每次用户改变其复选框被选中/ processSearchIdOptionsChange
的被称为定义的输入字段,并searchIdMaxLength
改变它的价值。这一切工作正常,我可以看到在$范围内更改的值。但是,我最初的最大长度仍然在应用中。达到初始最大字符数后弹出以下错误消息。为什么?
<span class="error" data-ng-show="(searchForm.$dirty && searchForm.searchId.$error.maxlength)">Too long!</span>
这几乎可行;在任何一种情况下,maxLengthValidator()都应该返回值,否则验证错误信息不能正确地使用FORMA.COMPONENTNAME。$ error.minlength来报告。 –
@TimBoudreau:你的意思是maxlength? – epitka