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

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.