我已将输入字段定义为
<form name="signUpForm">
<input type="text" name="username" ng-minlength="8" ng-maxlength="64" ng-model="user.username" ng-pattern="/((?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[@#$%^]))/">
</form>
将控制器中的用户定义为
$scope.user{};
现在,当我在HTML中绑定user.username值时,它会阻止它。
<p ng-if="user.username.length > 0">Display True</p>
即使我只是将其值绑定在HTML中
{{user.username}}
没有显示。
现在,如果我从输入字段中删除ng-pattern为: -
<input type="text" ng-minlength="8" ng-maxlength="64" ng-model="user.username">
然后只有它的结合,并且在满足ng-minlength =“8”条件之后也是如此。表示'12345678','1234567'未显示。
还有一个问题是,如果我使用ng-pattern,则ng-minlength验证不起作用。
<p ng-if="signUpForm.username.$error.minlength">Please enter minimum length</p>
答案 0 :(得分:1)
您可以尝试设置表单。$ setViewValue.length而不是模型的长度
例如:
<p ng-if="signUpForm.username.$setViewValue.length > 0">Display True</p>
这是我找到的解决方案: How do I prevent AngularJS from unbinding a form input's value from its model when it's invalid?