我正在使用来自AngularUI的datepicker控件的timepicker控件。我有一个日期,我想设置两个时间戳的开始和结束时间。
我的问题是,当我更改日期时,我想更新时间选择器的年/月/日,因为这些是我想要保存的值。然而,当我这样做时,它会对min的验证感到困惑(结束日期时间戳;如果我删除它,它可以工作,我无法做到)。
plnkr: http://plnkr.co/edit/HdKmbvBsSdtUBnf9ZuZd?p=preview
为简单起见,只需点击日期选择器上的任何日期,您就会在表单上看到$ valid的值变为false。 timepicker控件本身的工作原理是它不会让你低于指定的最小值(这是来自" start" timepicker的值),但表单无效。
以下是我用来更新时间的代码:
-infinity
编辑:
在查看Angular UI bootstrap.tpls.js文件之后,看起来它调用了:
$scope.dateChanged = function() {
$log.log('Date changed to: ' + $scope.dt);
var start = new Date($scope.dt);
var end = new Date($scope.dt);
$scope.starttime = start;
$scope.endtime = end.setHours(end.getHours() + 1);
};
在这款手表发射之前:
this.render = function() {
var date = ngModelCtrl.$viewValue;
if (isNaN(date)) {
ngModelCtrl.$setValidity('time', false);
$log.error('Timepicker directive: "ng-model" value must be a Date object, a number of milliseconds since 01.01.1970 or a string representing an RFC2822 or ISO 8601 date.');
} else {
if (date) {
selected = date;
}
if (selected < min || selected > max) {
ngModelCtrl.$setValidity('time', false);
$scope.invalidHours = true;
$scope.invalidMinutes = true;
} else {
makeValid();
}
updateTemplate();
}
};
导致它失败。不确定在我的场景中最好的解决方法是什么。