我有一个简单的代码:
<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中,它有自己的错误信息。
答案 0 :(得分: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>