无法使用 bootstrap ui 创建 from/to 日期范围

Cannot create from/to date range using bootstrap ui

我在我的应用程序中使用 Angular UI Bootstrap 组件。

里面有两个日期。可用日期和过期日期。我希望 ExpireDate 始终大于 AvailableDate。

    var expireMinDate = new Date();
    $scope.OpenExpireDate = function() {
        $scope.expireDatePopup.opened = true;
        var newMinDate = $scope.availableDateOptions.minDate;
        $scope.expireDateOptions.minDate =  expireMinDate.setDate(newMinDate.getDate() + 1);
    };

我试过这段代码。这是行不通的。 ExpireDate 没有按照我想要的方式禁用。我没有得到禁用所有其他日子的代码。有什么问题吗?

更新:现在我正在观察 AvailableDate 并相应地更改 minDate。

$scope.$watch('AvailableDate', function() {
    var newMinParts = $scope.AvailableDate.toString().split("-");
    $scope.expireDateOptions.minDate = new Date(newMinParts[0], newMinParts[1]-1, newMinParts[2]);
});

已更新 Fiddle:https://jsfiddle.net/codeandcloud/cpu4euoj/4/

想法是更新 ExpireDate minDate 设置以反映 AvailableDate 中的更改。现在 minDate 设置已经完全消失了。

对于html部分

        <div class="container" ng-app="demoApp" ng-controller="demoController">
<div id="demoForm" name="demoForm" ng-form="demoForm" novalidate>
    <div class="col-md-4">
        <label class="control-label">Available Date</label>
        <div class="input-form">
            <input type="text" class="form-control" uib-datepicker-popup="{{dateFormat}}" ng-model="AvailableDate" name="availabledate" is-open="availableDatePopup.opened" datepicker-options="availableDateOptions" ng-required="true" data-ng-change="captureChange(AvailableDate)" close-text="Close" ng-click="OpenAvailableDate()"
            placeholder="Available Date" />
            <label ng-show="showMessages && addJobForm.availabledate.$invalid" class="text-danger">
                Available Date is required.
            </label>
        </div>
    </div>
    <div class="col-md-4">
        <label class="control-label">Expire Date</label>
        <div class="input-form">
            <input type="text" class="form-control" uib-datepicker-popup="{{dateFormat}}" ng-model="ExpireDate" name="expiredate" is-open="expireDatePopup.opened" datepicker-options="expireDateOptions" ng-required="true" close-text="Close" ng-click="OpenExpireDate()"
            placeholder="Expire Date" />
            <label ng-show="showMessages && addJobForm.expiredate.$invalid" class="text-danger">
                Expire Date is required.
            </label>
        </div>
    </div>
</div>

对于JAvascript部分

           var demoApp = angular.module('demoApp', ["ui.bootstrap"]);
          demoApp.controller("demoController", ["$scope",
function($scope) {
    var today = new Date();
    $scope.dateFormat = 'yyyy-MM-dd';
    $scope.availableDateOptions = {
        formatYear: 'yy',
        startingDay: 1,
        minDate: today,
        maxDate: new Date(2030, 5, 22)
    };
    $scope.expireDateOptions = {
        formatYear: 'yy',
        startingDay: 1,
        minDate: today,
        maxDate: new Date(2030, 5, 22)
    };
    $scope.availableDatePopup = {
        opened: false
    };
    $scope.expireDatePopup = {
        opened: false
    };
    $scope.OpenAvailableDate = function() {
        $scope.availableDatePopup.opened = true;
    };

$scope.captureChange = function(val){
    var expDate = angular.copy(val);
    expDate.setDate(expDate.getDate()+1);
    $scope.ExpireDate = expDate;
}

    var expireMinDate = new Date();
    $scope.OpenExpireDate = function() {
        $scope.expireDatePopup.opened = true;
        var newMinDate = $scope.availableDateOptions.minDate;
 if($scope.AvailableDate != undefined){
var ddnew = angular.copy($scope.AvailableDate);
    ddnew.setDate(ddnew.getDate()+1);
        $scope.expireDateOptions.minDate = ddnew;
  }
  else{
  $scope.expireDateOptions.minDate = today;
  }
    };
}]);