角材料日期选择器字段值为空
问题描述:
我想获得用户的出生日期,预定义的最小和最大日期工作正常。 我想要的日期格式是DD-MM-YYYY,为此我在config中定义了以下内容;角材料日期选择器字段值为空
app.config(['$mdDateLocaleProvider', function ($mdDateLocaleProvider) {
$mdDateLocaleProvider.formatDate = function(date) {
return moment(date).format('DD-MM-YYYY');
}}]);
和控制器具有
$scope.user = {};
$scope.user.dob = new Date();
$scope.maxDate = new Date(
$scope.user.dob.getFullYear() - 10,
$scope.user.dob.getMonth(),
$scope.user.dob.getDate()
);
$scope.minDate = new Date(
$scope.user.dob.getFullYear() - 120,
$scope.user.dob.getMonth(),
$scope.user.dob.getDate()
);
和HTML是;
<md-datepicker
ng-model="user.dob"
md-placeholder="Enter date of birth"
md-min-date="minDate"
md-max-date="maxDate">
</md-datepicker>
与此代码字段默认显示当前的日期,这是我不想,
我想日期字段设置为默认为空。
我也想在这两种方式来获得值如下 1)日 - 月 - 年 而 2)日 - 月 - 年小时 - 分 - 秒
当我试图获得的价值它显示了这种 “09-11-2016T18:30:00.000Z”
我想无论是 “2016年9月11日” 或 “2016年9月11日18:30:00”
答
你mdDateLocaleProvider犯规检查。
你的问题是:
app.config(['$mdDateLocaleProvider', function ($mdDateLocaleProvider) {
$mdDateLocaleProvider.formatDate = function(date) {
return moment(date).format('DD-MM-YYYY');
}}]);
它需要是这样的:
$mdDateLocaleProvider.formatDate = function(date) {
var m = moment(date);
return m.isValid()? m.format('DD-MM-YYYY') : '';
};
然后你可以设置
$scope.user.dob=null;
,并得到一个空的日期选择器。
答
的问题是你的NG -模型。你的当前日期初始化它:
$scope.user.dob = new Date();
干脆为空这个变量,你会好),表示空值
+0
我试过$ scope.user.dob =“”;和$ scope.user.dob = null;但都导致“无效日期”和$ scope.user.dob = undefined;显示当前日期 –
如果我删除配置块中写入的代码,那么字段值不会显示任何日期,但这会阻止我设置特定的日期格式。 –