0

I am getting the following error while trying to display the validation message using Angular.js.

Error:

angularjs.js:107 Error: [$parse:syntax] http://errors.angularjs.org/1.4.6/$parse/syntax?p0=%7B&p1=is%20an%20unexpected%20token&p2=17&p3=billdata.upload_%7B%7BNaNndex%7D%7D.%24touched&p4=%7B%7B%index%7D%7D.%24touched

I am providing my code below:

<div class="input-group bmargindiv1 col-md-12" ng-repeat="mul in mulImage">
<span class="input-group-addon ndrftextwidth text-right" style="width:180px">Image{{$index+1}}:</span>
 <div>
<div ng-class="{'myError': billdata.upload_{{$index}}.$touched && billdata.upload_{{$index}}.$invalid }">
<input type="file" class="filestyle form-control" data-size="lg" name="upload_{{$index}}" id="bannerimage_{{$index}}"  ng-model="mul.image" ngf-pattern="'image/*'" accept="image/*" ngf-max-size="2MB" ngf-min-height="400" ngf-resize="{width: 400, height:400}"  ngf-select="onFileSelect1('upload_{{$index}}',mul.image);">
 <div style="clear:both;"></div>
</div>
 </div>
<span class="input-group-btn" ng-show="mulImage.length>0">
<img ngf-thumbnail="mul.image" name="pro" border="0" style="width:32px; height:32px; border:#808080 1px solid;">
 <input type="button" class="btn btn-success" name="plus" id="plus" value="+" ng-click="addNewImageRow(mulImage);" ng-show="$last"> <input type="button" class="btn btn-danger" name="minus" id="minus" value="-"  ng-show="mulImage.length>1" ng-click="deleteNewImageRow(mulImage,$index);">
                                  
</span>
 <div class="help-block" ng-messages="billdata.upload_{{$index}}.$error" ng-if="billdata.upload_{{$index}}.$touched">
 <p ng-message="maxSize" style="color:#F00;">File is too large.Max size is 2 mb.</p>
 <p ng-message="minHeight" style="color:#F00;">Minimum height should be 400px</p>
 </div>
</div>

Here when I am adding this validation message <div class="help-block" ng-messages="billdata.upload_{{$index}}.$error" ng-if="billdata.upload_{{$index}}.$touched"> it's throwing the above error. How can I resolve this error?

5
  • statements in ng-if are treated as javascript, so {{$index}} is not replaced by the index. Commented Apr 15, 2016 at 13:22
  • So,what should be the solution. Commented Apr 15, 2016 at 13:24
  • You can change the ng-if="billdata.upload_{{$index}}.$touched" to ng-if="billdata['upload_'+this.$index].$touched". and same changes to ng-messages. Commented Apr 15, 2016 at 13:31
  • thanks i resolved that. Commented Apr 15, 2016 at 13:32
  • Please post how you did resolve that. If you solved with the help of a comment, state it and give credit to the author. If you solved in different way, write it down. Commented Apr 15, 2016 at 13:35

2 Answers 2

0

Instead of "billdata.upload_{{$index}}.$error, I would use "billdata['upload_' + $index].$error

Sign up to request clarification or add additional context in comments.

Comments

0

You can change the ng-if="billdata.upload_{{$index}}.$touched" to ng-if="billdata['upload_'+this.$index].$touched". and same changes to ng-messages

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.