В этом отношении вы могли бы рассмотреть возможность ограничить значения часа и минуты ввода, вот как настроить его для Timepicker
1) ввести пользовательские шаблон и указать атрибуты в min
, max
и validate-value
для hour
и minute
элементы ввода, например:
<input type="text" placeholder="HH" validate-value min="1" max="12" ng-model="hours" ng-change="updateHours()" class="form-control text-center" ng-readonly="::readonlyInput" maxlength="2" tabindex="{{::tabindex}}" ng-disabled="noIncrementHours()" ng-blur="blur()">
2) реализуют validate-value
директиву, чтобы ограничить числовые значения в элементе ввода:
.directive('validateValue', function() {
return {
require: 'ngModel',
link: function(scope, element, attrs, ngModelCtrl) {
ngModelCtrl.$parsers.unshift(function(viewValue) {
var min = Number(eval(attrs.min));
var max = Number(eval(attrs.max));
var value = Number(viewValue);
var valid = (!isNaN(value) && value >= min && value <= max);
if (!valid) {
var currentValue = ngModelCtrl.$modelValue.toString();
ngModelCtrl.$setViewValue(currentValue);
ngModelCtrl.$render();
return currentValue;
}
else {
return viewValue;
}
});
}
};
})
Demo
Спасибо, но не там нет «родного» способа сделать это с простой конфигурацией начальной загрузки? То, что вы объясните здесь, вероятно, будет работать. Я проведу его в ближайшее время. – molerat
В соответствии с [страницами настроек] (https://angular-ui.github.io/bootstrap/) 'max' и' min' могут быть указаны для установки максимального и минимального времени, которое пользователь может выбрать, но, к сожалению, эти настройки не будут препятствовать пользователь вводит недопустимые значения. –
Так что я не пробовал. Я просто console.logged неправильный объект времени. Результат, который поступает прямо из timepicker, кажется нулевым, когда он недействителен. Похоже, я использовал другой объект времени, который был изменен ранее. Спасибо в любом случае и жаль усилий. – molerat