0

我有一个简单的代码:

    <div class="row" ng-repeat="aDiagnosis in diagnosisListForPrescription">

                        <div class="col-md-4 padding-right-zero" id={{aDiagnosis.rowIndex}}>
                            <input class="form-control" name="aDiagnosisName" ng-model="aDiagnosis.Name" ng-disabled="true">
                        </div>
                        <div class="col-md-4 padding-right-zero form-group" show-errors id={{aDiagnosis.rowIndex}}>
                            <input class="form-control" name="aDiagnosisResult" ng-maxlength="200" ng-model="aDiagnosis.Result" />
                            <p class="help-block" ng-if="form.aDiagnosisResult.$error.maxlength">Too Large</p>
                        </div>
</div>

并使用 $scope.form.$valid 生成错误消息。但问题是因为每次找到相同的名称时使用 ng-repeat 并且当我想通过单击按钮生成第二个列表时,第一个错误消息消失了,错误消息现在适用于第二个文本(显然)。那么我如何才能每次动态地生成错误消息,所以 ng-repeat 中的每个文本形式,它都有自己的错误消息。

4

1 回答 1

2

您可以在 中生成输入的动态name属性ng-repeat。例如,您可以放置$index​​(或您的对象的 id 或任何您想要的)name为您的输入生成唯一的。

<div class="row" ng-repeat="aDiagnosis in diagnosisListForPrescription">

     <div class="col-md-4 padding-right-zero" id={{aDiagnosis.rowIndex}}>
          <input class="form-control" name="aDiagnosisName-{{$index}}" ng-model="aDiagnosis.Name" ng-disabled="true">
     </div>
     <div class="col-md-4 padding-right-zero form-group" show-errors id={{aDiagnosis.rowIndex}}>
          <input class="form-control" name="aDiagnosisResult-{{$index}}" ng-maxlength="200" ng-model="aDiagnosis.Result" />
          <p class="help-block" ng-if="form['aDiagnosisResult-' + $index].$error.maxlength">Too Large</p>
     </div>
</div>

关于 plunker 的示例。

于 2015-07-12T10:27:46.713 回答