使用带有ng-pattern的表单输入指令。当指令上的ID是字符串时它可以工作(即显示错误),但当ID是表达式时失败(即错误从不显示)。伪代码:
工作原理
<form name="myForm" role="form" ng-submit="customer.submit()">
<form-input id="foo" ng-pattern="/^[0-9]+$/"></form-input>
</form>
<span ng-show="myForm.foo.$error.pattern" class="ng-hide">Not valid number!</span>
不起作用(myVar =“foo”)
<form name="myForm" role="form" ng-submit="customer.submit()">
<form-input id="{{myVar}}" ng-pattern="/^[0-9]+$/"></form-input>
</form>
<span ng-show="myForm.foo.$error.pattern" class="ng-hide">Not valid number!</span>
Chrome检查了HTML(完全相同的工作/不工作)
<input type="text" id="foo" name="foo" ng-pattern="/^[0-9]+$/" class="ng-valid ng-valid-pattern">
<span ng-show="myForm.foo.$error.pattern" class="ng-hide">Not valid number!</span>
假设这是因为当所有内容都已连接时,表达式ID未定义,但不知道如何修复。提前谢谢!
答案 0 :(得分:0)
您需要一个验证模型,ng-model
指令才能准确。
添加ng-model
后,一切正常。
<form name="myForm" role="form" >
<input name="foo" id="{{myVar}}" ng-pattern="/^[0-9]+$/" ng-model="modelVar" />
</form>
请参阅jsFiddle