我有一个模型可以打开一个表单来编辑用户信息。表单有多个使用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 :(得分:0)
看看我之前不熟悉的api,似乎有&#34;事件&#34;可以被称为。也许可以使用&#34; changeDate&#34;如果用户未输入日期,则调用将数据库中的日期设置为null。
他们的代码示例:
$('#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) {
...
});