2015-01-16 41 views
0

對ng-pattern使用表單輸入指令。當ID爲表達式時,它在指令上的ID是一個字符串時會起作用(即顯示錯誤),但失敗(即從未顯示錯誤)。僞代碼:AngularJs指令表達式ID和ng-pattern不起作用

工作

<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的= 「富」)

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

鉻視察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

您需要一個驗證模型,ng-model指令是精確的。 當ng-model被添加時,一切正常。

<form name="myForm" role="form" > 
    <input name="foo" id="{{myVar}}" ng-pattern="/^[0-9]+$/" ng-model="modelVar" /> 
</form> 

參見jsFiddle

+0

您好,加入該模型,但是當更改myVar的以 '富',並使用名稱= {{myVar的}}它停止在[的jsfiddle(工作http://jsfiddle.net/qtokL2tv/1 /)。 謝謝。 – user1508460