使用带有 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 Inspected 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 是未定义的,但不知道如何修复。提前致谢!