угловая проверка в ng-repeat

У меня есть проверка ниже для моих texboxes в ng-repeat

<div class="col-md-6 col-lg-2">
    <div class="form-group">
        <label for="Country{{$index}}" class="control-label required">Country</label>
        <div class="input-group">
            <mc-lookup-dropdown data-lookup-name="CountryType" required data-model="ContactAddress.Country" id="Country{{$index}}" name="Country{{$index}}" class="form-control"></mc-lookup-dropdown>
        </div>
        <div data-ng-messages="memberDemographics.demographics.$error" class="validation-errors">
            <div data-ng-message="Country">{{ ContactAddress.$serverErrors.Country }}</div></div>
        <div data-ng-messages="demographicsForm.{{'Country'+$index}}.$error" class="validation-errors">
            <div data-ng-message="required" data-ng-show="!demographicsForm.{{'Country'+$index}}.$pristine">This Field is Required</div>
        </div>
    </div>
</div>

ниже выдается ошибка при загрузке страницы "rror: [$parse:syntax]

http://errors.angularjs.org/1.5.8/$parse/syntax?p0 =%7B&p1=is%20not%20a%20validNaNdentifier&p2=18&p3=demographicsForm.%7B%7B'PhoneNumber'%2B%index%7D%7D.%24error&p4=%7B%7B'PhoneNumber'%2B%index%7D%7D .%24ошибка"

мне нужно иметь выражение в ng-сообщении, так как textname зависит от $index цикла ng-repeat..


person madhu    schedule 29.08.2016    source источник


Ответы (2)


В этих строках есть ошибки:

<div data-ng-messages="demographicsForm.{{'Country'+$index}}.$error" class="validation-errors">
<div data-ng-message="required" data-ng-show="!demographicsForm.{{'Country'+$index}}.$pristine">This Field is Required</div>

Измените это с помощью:

<div data-ng-messages="demographicsForm['Country' + $index].$error" class="validation-errors">
<div data-ng-message="required" data-ng-show="!demographicsForm['Country'+$index].$pristine">This Field is Required</div>

Из этой статьи

Вам нужно только заключить фигурные скобки при использовании системы шаблонов Angular — фигурные скобки говорят Angular заменить значение. В этом случае значение data-ng-message — это вычисляемое выражение.

person Vineet    schedule 29.08.2016
comment
но ваша ошибка была $parse:syntax, поэтому мой ответ относится к этому. Но эта ошибка отличается - person Vineet; 29.08.2016

это получилось, изменив html на

<div data-ng-messages="demographicsForm['Country'+$index].$error" class="validation-errors">
                                                    <div data-ng-message="required" data-ng-show="!demographicsForm['Country'+$index].$pristine">This Field is Required</div>
</div>

Спасибо

person madhu    schedule 29.08.2016