AngularJs指令表达式ID和ng-pattern不起作用

时间:2015-01-16 06:02:20

标签: angularjs expression ng-pattern

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

1 个答案:

答案 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