У меня есть ng-repeat, который выплевывает данные и входы, которые могут быть сделаны для исправления данных. Если часть каждого повторения имеет определенное значение, мне нужно ограничить способы ввода данных.Угловая динамическая валидация, основанная на других данных
Так, например, есть список оборудования, а для типа обслуживания 1511 максимальное количество равно 1. Им необходимо его исправить, и я хочу убедиться, что они не набирают число, которое недействительно что приведет к возникновению другой проблемы.
Как это можно сделать?
Редактировать: Обновлен jsfiddle и ниже код, который нужно уменьшить до только повторяющихся бит.
Пример jsfiddle: https://jsfiddle.net/AKarstaedt/vfuj8sjt/
HTML:
<div ng-app="myApp" ng-controller="TaskActivityCtrl" class="container-fluid">
<form novalidate name="taskActivityForm">
<div class="row" data-ng-repeat="service in bill.services">
<div data-ng-repeat="serviceCharge in service.serviceCharges">
<div class="col-md-12 table-responsive">
<table class="table table-striped">
<thead>
<tr>
<th class="col-md-3">Service Code</th>
<th class="col-md-2">Attribute</th>
<th class="col-md-2">Billed/Invoiced Value</th>
<th class="col-md-5">Updated Value</th>
</tr>
</thead>
<tbody>
<tr>
<td rowspan="3">{{ service.serviceCode }}
</td>
<td>Quantity</td>
<td class="existQuantity">{{ serviceCharge.quantity }}</td>
<td>
<input type="number" class="form-control" placeholder="New quantity" data-ng-model="serviceCharge.newQuantity" min="0">
</td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
</form>
</div>
Контроллер:
angular.module('myApp', [])
.controller('TaskActivityCtrl', function($scope) {
$scope.bill = {
"services": [{
"billableIndicator": true,
"serviceCode": "1511",
"serviceCharges": [{
"equipment": {
"equipmentInitial": "TTEX",
"equipmentNumber": "988172"
},
"quantity": 2,
"rate": 5000,
"amount": 10000,
"unitTypeCode": "PC",
"billableIndicator": true,
"billableDisplay": "Y",
"suspendIndicator": false
}, {
"equipment": {
"equipmentInitial": "TTEX",
"equipmentNumber": "90099"
},
"quantity": 1,
"rate": 7888,
"amount": 7888,
"unitTypeCode": "PC",
"billableIndicator": true,
"billableDisplay": "Y",
"suspendIndicator": false
}]
}, {
"billableIndicator": true,
"serviceCode": "1530",
"serviceCharges": [{
"equipment": {
"equipmentInitial": "TTEX",
"equipmentNumber": "988172"
},
"quantity": 25,
"rate": 200,
"amount": 5000,
"unitTypeCode": "PM",
"billableIndicator": true,
"billableDisplay": "Y",
"suspendIndicator": false
}]
}],
}
});
код контроллера, пожалуйста? –
Я бы предложил выделить конкретную проблему в простой части кода, чтобы ее было легче читать. Слишком много нерелевантного кода и разметки здесь и в скрипке – Austin
Я обновил код и скрипку, чтобы сделать его более читаемым. Добавлен контроллер (который является только JSON, назначенным переменной области). –