Я пытаюсь добавить пользовательскую функцию проверки в Angg's ngMessages.Угловые ngMessages - Доступ к нескольким значениям формы
В частности, я хочу значение нескольких входов (количество входов будет динамичным, но сейчас придерживаться 2) в общей сложности 100.
Я создал новую директиву под названием totalOneHundred
которая запуска на изменение формы, но я не могу понять, как получить доступ к другим значениям формы из обратного вызова link:
.
Я разместил свой код ниже. Есть что-то, чего я не хватает? Кроме того, если есть лучший способ выполнить это (например, функция sum()
в контроллере и ng-show
), пожалуйста, позвоните мне.
Благодарим за помощь.
Форма:
<!-- input box to be validated -->
<input type="number" class="form-control" name="lowBound" ng-model="ctrl.lowBound" total-one-hundred required>
<!-- validation messages -->
<div ng-messages="form['lowBound'].$error" role="alert">
<div ng-message="required">Cannot be empty</div>
<div ng-message="totalOneHundred">Sum of tasks must = 100</div>
</div>
<!-- input box to be validated -->
<input type="number" class="form-control" name="highBound" ng-model="ctrl.highBound" total-one-hundred required>
<!-- validation messages -->
<div ng-messages="form['highBound'].$error" role="alert">
<div ng-message="required">Cannot be empty</div>
<div ng-message="totalOneHundred">Sum of tasks must = 100</div>
</div>
директива:
return {
restrict: "A",
require: ["^^form", "ngModel"],
link: function(scope, element, attributes, controllers) {
// At first, form is assigned the actual form controller...
const form = controllers[0];
const model = controllers[1];
model.$validators.totalOneHundred = function (modelValue, form, element, scope) {
// however, the value of form here is "1".
// modelValue is the value of the triggering input,
// but how can I access the other form inputs?
return true;
};
}
};
Большое спасибо за подробный ответ. Вероятно, я пытаюсь подтолкнуть угловую проверку слишком далеко. Я посмотрю на ресурсы, которые вы связали, и посмотрите, что подходит для моего использования. Еще раз спасибо! – Mac