datetime
,可能为空,也可能不为空。前端表单应该显示数据库中的日期(如果有(,如果它是空的,它应该显示mm/dd/yyyy
而不是1/1/0001
当数据库中有空值时那样。所以基本上如果数据库中有一个日期,它应该显示日期,如果它是空的,它应该返回默认的日期选择器,带有"mm/dd/yyyy
"或"选择日期"。
我的js文件看起来像:
$scope.Changes = function (product, value) {
var input =
{
ProductId: product.ProductId,
isActive: value,
graceEndDate: product.graceEndDate
}
AdService.updateProducts(input).then(function (response) {
if (response && response.data && response.data.isSuccessful === true) {
DealService.showSuccess('Update successful');
} else {
DealService.showError('error');
}
product.isUpdating = false;
$scope.loadProducts();
}, function (error) {
product.isUpdating = false;
$scope.loadProducts();
DealService.showError(error);
});
}
};
我的 HTML 看起来像这样:
<td ng-if="product.isActive === true">
<quick-datepicker type="date" style="max-width: 175px"
placeholder="mm/dd/yyyy"
ng-model="product.EndDate"
disable-timepicker="true"
ng-change="saveChanges(product, true)">
</quick-datepicker>
</td>
我不认为你的问题在于占位符。我敢打赌,您的前端接收的数据product.EndDate
设置为 1/1/0001,因为DateTime
类型设置为默认值时为 null。
根据您的后端语言,您可以将类型设置为可为 null以解决此问题
如果使用了 nqQuickDate 库,则可以轻松地使用 placeHolder 属性来处理空值。 但是仔细检查从 API 获取的空值格式是否正确,有时空值以字符串空的形式出现,例如:日期:'null'