Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Angular dynamically set ng-messages to name attribute

I dynamically create inputs and want also validate every one of them but can't set correctly the ng-messages attribute to the field name property which is dynamically generated.

<input ng-model="sub.name" name="subName{{$index}}" class="form-control" placeholder="name" required maxlength="20" />
<div class="field-error" ng-messages="form.subName{{$index}}.$error" ng-show="form.Name.$touched" role="alert">
    <div ng-message="required">Name is required.</div>
</div>

I got problem with second line where I set the ng-messages dynamically to ng-messages. How can I do this?

like image 411
CSharpBeginner Avatar asked Jul 16 '15 14:07

CSharpBeginner


1 Answers

Accessing the properties of your form object can also be done using brackets, which should solve your problem :

<input ng-model="sub.name" name="subName{{$index}}" class="form-control" placeholder="name" required maxlength="20" />
<div class="field-error" ng-messages="form['subName' + $index].$error" ng-show="form.Name.$touched" role="alert">
    <div ng-message="required">Name is required.</div>
</div>
like image 185
Helori Avatar answered Oct 23 '22 15:10

Helori