Мне удалось заставить его работать, хотя мне действительно не нравится это решение.Я положил
<div class="col-xs-12" ng-show="equipmentDuplicatesForm.$invalid">
<div class="info-text-block info-text-block-error">
<p ng-show="getDuplicateError()">
{{validationError}}
</p>
<p ng-show="equipmentDuplicatesForm.assetNo.$error.maxlength || isAssetNoMaxLenError">
@string.Format(Messages.cannotExceed, Labels.assetNo, "100")
</p>
<p ng-show="equipmentDuplicatesForm.serialNo1.$error.maxlength || isSerialNo1MaxLenError">
@string.Format(Messages.cannotExceed, Labels.serialNo1, "100")
</p>
<p ng-show="equipmentDuplicatesForm.serialNo2.$error.maxlength || isSerialNo2MaxLenError">
@string.Format(Messages.cannotExceed, Labels.serialNo2, "100")
</p>
<p ng-show="equipmentDuplicatesForm.serialNo3.$error.maxlength || isSerialNo3MaxLenError">
@string.Format(Messages.cannotExceed, Labels.serialNo3, "100")
</p>
<p ng-show="equipmentDuplicatesForm.serialNo4.$error.maxlength || isSerialNo4MaxLenError">
@string.Format(Messages.cannotExceed, Labels.serialNo4, "100")
</p>
</div>
</div>
и в getDuplicateError я сделал следующее
$scope.getDuplicateError = function () {
let error = "";
$scope.selectedDuplicateIndex = 0;
$scope.isAssetNoInError = false;
$scope.isAssetNoMaxLenError = false;
$scope.isSerialNo1MaxLenError = false;
$scope.isSerialNo2MaxLenError = false;
$scope.isSerialNo3MaxLenError = false;
$scope.isSerialNo4MaxLenError = false;
$scope.validationError = "";
for (let i = 0; i < $scope.duplicatesArray.length; i++) {
const equipment = $scope.duplicatesArray[i];
if (equipment.errorMessage)
error = error + equipment.errorMessage + "\r\n";
if (equipment.warningMessage)
error = error + equipment.warningMessage + "\r\n";
if (_.isUndefined(equipment.assetNo)) {
if (equipment.errorMessage) {
$scope.isAssetNoInError = true;
}
else {
$scope.isAssetNoMaxLenError = true;
}
}
if (_.isUndefined(equipment.serialNo1))
$scope.isSerialNo1MaxLenError = true;
if (_.isUndefined(equipment.serialNo2))
$scope.isSerialNo2MaxLenError = true;
if (_.isUndefined(equipment.serialNo3))
$scope.isSerialNo3MaxLenError = true;
if (_.isUndefined(equipment.serialNo4))
$scope.isSerialNo4MaxLenError = true;
}
$scope.validationError = error;
return error.length > 0;
};
Это позволило мне добиться желаемого поведения.