有没有办法为Angular的引导时间选择器设置最短时间和最长时间?使用Angular的Datepicker设置支持最小和最大日期,我我想知道Timepicker是否允许使用类似的功能。
查看Angular Documentation for Timepicker中的设置似乎没有办法实现此目的...但只是想知道是否有人熟悉实现此行为的方法。提前感谢和见解/建议!
修改
更多地了解我要做的事情:
我有两个Timepickers并排。左侧的那个允许用户选择开始时间,右侧的选择器允许用户选择结束时间。无论选择哪个开始时间,都应设置结束时间时间戳的下限,无论选择哪个结束时间,都应设置开始时间时间戳的上限。
答案 0 :(得分:1)
如果你的验证工作正常,你真的只需要设置minTime或maxTime,因为一旦你的'开始'时间在'结束'时间之后,'结束'时间也在'开始'时间之前。
我想完全按照你所描述的那样做,最后写一个指令去做。
我选择'minTime'作为我'end'时间戳的属性,并将其设置为我''start'timepicker的模型。然后该指令监视两个模型的变化,如果'开始'时间改变则更新minTime,并根据'start'是否在'end'之前设置模型验证。
只要设置了ng-model,您也可以在input [time]元素上使用它。
我首先尝试使用解析器和格式化程序来避免使用$ watch,但最后却没有将模型注册为无效,直到我下次更改它为止。
这是指令。随意使用do wtf you want:
directive('minTime', function (){
return {
require: 'ngModel',
restrict: 'A',
link: function(scope, elem, attrs, ctrl) {
var minTime;
scope.$watch(attrs.minTime, function(newVal) {
minTime = newVal;
validate();
});
scope.$watch(attrs.ngModel, validate);
function validate(value) {
ctrl.$setValidity('minTime', (minTime < ctrl.$modelValue));
return value;
}
}
};
})