ui-date动态更新选项

时间:2013-09-02 19:20:21

标签: angularjs angularjs-directive uidatepicker

我使用Angularjs ui-date来绑定Jquery datepicker。我的页面中有两个日期选择器,名为start和end。

我想根据开始日期更改结束日期的起始值。无论如何都要动态更改datepicker的选项。

对于EX:

StartDate:2013年9月7日 结束日期的最短日期应为2013年9月8日。

1 个答案:

答案 0 :(得分:3)

我刚遇到同样的问题,这就是我所做的:

假设你有以下html

<div ng-controller="MyDateCtrl">
    <input ui-date="fromDatePickerOptions" type="text" ng-model="date.from" />
    <input ui-date="toDatePickerOptions" type="text" ng-model="date.to" />
</div>

然后在你的JS中你会有类似的东西:

function MyDateCtrl($scope) {
    $scope.date = {
        from: new Date(),
        to:   new Date()
    };

    $scope.fromDatePickerOptions = {
      dateFormat: 'M dd, yy'
    };

    $scope.toDatePickerOptions = {
      dateFormat: 'M dd, yy'
    };

    $scope.$watch('date', function() {
      // You could offset dates however you like according to your needs.
      // Here, start cannot be after end and of course end cannot be before start.
      $scope.fromDatePickerOptions.maxDate = $scope.date.to,
      $scope.toDatePickerOptions.minDate   = $scope.date.from;
    }, true);
}

true的{​​{1}}第二个参数只是根据documentation来比较对象而不是参考。)

$watch()$scope.fromDatePickerOptions的更改将使ui-date指令重新加载其选项。

就是这样!这对我来说很好。