我使用的是angular- eonasdan-datetimepicker,一个用于eonasdan-datetimepicker的angular包装器。如何使结束日期始终晚于开始日期。同时在结束日期日历中禁用开始日期之前的日期。
我尝试使用on-change事件来更新UI,但是没有发生。事件正在被调用,但值未更新。
在结束日期的onchange事件中:
$scope.FormName.enddate = $scope.startdate;
即
(FormName.elementName) =用户从模型中选择开始日期的值。
在jquery中,它使用:
<script type="text/javascript">
$(function () {
$('#datetimepicker6').datetimepicker();
$('#datetimepicker7').datetimepicker({
useCurrent: false //Important! See issue #1075
});
$("#datetimepicker6").on("dp.change", function (e) {
$('#datetimepicker7').data("DateTimePicker").minDate(e.date);
});
$("#datetimepicker7").on("dp.change", function (e) {
$('#datetimepicker6').data("DateTimePicker").maxDate(e.date);
});
});
</script>angular包装器代码如下所示:
(function() {
'use strict';
var module = angular.module('ae-datetimepicker', []);
module.directive('datetimepicker', [
'$timeout',
function($timeout) {
return {
require: '?ngModel',
restrict: 'EA',
scope: {
options: '@',
onChange: '&',
onClick: '&'
},
link: function($scope, $element, $attrs, controller) {
$element.on('dp.change', function() {
$timeout(function() {
var dtp = $element.data('DateTimePicker');
controller.$setViewValue(dtp.date());
$scope.onChange();
});
});
$element.on('click', function() {
$scope.onClick();
});
controller.$render = function () {
if (!!controller) {
if (controller.$viewValue === undefined) {
controller.$viewValue = null;
}
else if (!(controller.$viewValue instanceof moment)) {
controller.$viewValue = moment(controller.$viewValue);
}
$element.data('DateTimePicker').date(controller.$viewValue);
}
};
$element.datetimepicker($scope.$eval($attrs.options));
}
};
}
]);
})();任何线索都会很有帮助。
发布于 2016-05-31 16:03:24
我想不需要传递lib的源代码:https://github.com/atais/angular-eonasdan-datetimepicker
我已经更新了lib,所以可以更容易地归档您所请求的内容。
基本上,现在options是一个对象,而不是JSON String,fe:
vm.options = {
format: "DD.MM.YYYY",
maxDate: dateTo
};这些变化正在被关注和应用。演示的插入器在这里:http://plnkr.co/ZSjN8f
https://stackoverflow.com/questions/37523892
复制相似问题