Можно ли сначала обновить модель, а затем запустить валидатор?У меня есть асинхронный валидатор, который запускается при обновлении ввода (тип range
).
Я хочу сначала обновить значение в шаблоне HTML, а затем запустить валидатор.Поведение по умолчанию - сначала запустить валидатор, а затем обновить модель, если проверка завершена.
Пожалуйста, обратитесь к приведенному ниже фрагменту:
angular.module('app', [])
.controller('ctrl', ($scope) => {
$scope.value = 0;
})
.directive('validateValue', ($http) => {
return {
require: 'ngModel',
scope: false,
link: linkFn
};
function linkFn(scope, elem, attrs, modelCtrl) {
modelCtrl.$asyncValidators.validValue = (m, v) => {
return $http.get('https://httpbin.org/delay/1');
};
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.7.5/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="ctrl">
<form>
<input type="range" ng-model="value" ng-model-options="{debounce: 100}" validate-value> {{value}}
</form>
</div>
</div>