2015-12-08 84 views
0

我有一个模型,打开一个窗体来编辑用户信息。该表单有多个使用datepicker的输入字段。一些日期字段不是必需的。但是,如果数据库中的其中一个日期为空,则当用户单击保存按钮(即使不打算保存)时,今天的日期会自动填入并保存。AngularJS Datepicker - 没有选择日期

这里是我的HTML

<div class="form-group"> 
    <label class="control-label">Date</label> 
    <div> 
     <input class="form-control" type="date" placeholder="mm/dd/yyyy" uib-datepicker-popup ng-model="editUser.DatesTemp" datepicker-options="dateOptions" is-open="status.opened" min-date="minDate" max-date="maxDate" datepicker-options="dateOptions" date-disabled="disabled(date, mode)" ng-required="true" close-text="Close"> 
    </div> 
</div> 

这里是脚本文件

angular.module("myApp", ['ui.bootstrap', 'gm.datepickerMultiSelect']); 

// MAIN CONTROLLER 
angular.module("myApp").controller("MainController", function ($scope, $http) { 
$scope.Data = data; 
console.log(data); 

    $scope.userEdit = function (index) { 
     $scope.editUser = data.userInfo[index]; 
     //using moment to format date 
     $scope.editUser.DatesTemp = moment($scope.editUser.Dates[0]).toDate(); 
    }; 

}); 

// DATE CONTROLLER 
angular.module("myApp").controller("modalEditUserController", function ($scope, $http) { 
    $scope.postUpdate = function() { 
     //using moment to format date 
     $scope.editUser.Dates[0] = moment($scope.editUser.DatesTemp).format('MM/DD/YYYY h:mm:ss A'); 
    }; 
}); 

// DATE FILTER 
angular.module("myApp").filter("asDate", function() { 
    return function (input) { 
     return new Date(input); 
    }; 
}); 

回答

0

望着api,这是我以前不熟悉,似乎有“事件”,可以调用。也许可以使用“changeDate”调用在数据库中设置日期为空(如果用户没有输入)来创建条件。

他们的代码示例:

$('#dp5').datepicker() 
.on('changeDate', function(ev){ 
    if (ev.date.valueOf() < startDate.valueOf()){ 
     .... 
    } 
}); 

也许找到一种方法在代码中实例化这个。

此外,不是必需的,但写入控制器的快速提示。该模块可以被声明为一个变量,并随后用于每个以下控制器/过滤器。只是代码的捷径。

var app = angular.module("myApp", ['ui.bootstrap', 'gm.datepickerMultiSelect']); 

app.controller("MainController", function ($scope, $http) { 
    ...  
}); 
app.controller("modalEditUserController", function ($scope, $http) { 
    ... 
});