2016-11-18 163 views
1

我正在使用Angular UI Bootstrap Datepicker进行日期选择。我的挑战是默认情况下将日期选择器的输入字段设置为空字段。如何设置Angular UI Bootstrap Datepicker默认设置空字段?

让我告诉你我用过的输入字段。

<td> 
    <div> 
    <input class="form-control" type="text" datepicker-popup="dd/MM/yyyy" id='txtDate' ng-model="personalDetail.date" is-open="personalDetail.isOpen" close-text="Close" ng-click="open($event, personalDetail)" name="datefilter" value="" /> 

    </div> 
</td> 

而且我的脚本

$scope.personalDetails.forEach(function(personalDetail){ 
    personalDetail.date = new Date(personalDetail.date); 
    }); 

    $scope.open = function($event, personalDetail) { 
    $event.preventDefault(); 
    $event.stopPropagation(); 

    personalDetail.isOpen = true; 
    }; 

我在NG-重复HTML表使用它。但我需要的是显示日期字段为空,直到我设置相应的日期。请从这里帮助我。

+0

您将控件绑定到字段personalDetail.date,因此它将显示该值中存在的任何日期。设置值=“”可能不会工作。 – Nick

回答

2
<td> 
    <div> 
    <input class="form-control" type="text" datepicker-popup="dd/MM/yyyy" id='txtDate' ng-model="personalDetail.date" is-open="personalDetail.isOpen" close-text="Close" ng-click="open($event, personalDetail)" name="datefilter" value="" /> 

    </div> 
</td> 

你的控制器应

$scope.personalDetails.forEach(function(personalDetail){ 
    //personalDetail.date = new Date(personalDetail.date);//sets the value to the control 
    personalDetail.date = !personalDetail.date || new Date(personalDetail.date).toISOString() == new Date('1/1/1900').toISOString() 
     ? '' // Date is null, undeclared, or default value 
     : new Date(personalDetail.date); 
    }); 

    $scope.open = function($event, personalDetail) { 
    $event.preventDefault(); 
    $event.stopPropagation(); 

    personalDetail.isOpen = true; 
    }; 
+0

非常感谢你,它工作正常 –

+0

@anilchean :)高兴地帮助你。顺便说一句,你能分享你的fb ID吗? – Aravind

+0

值得一提的是,如果您需要在带有validatation的表单中使用datepicker指令,则会出现问题。 Angular UI日期选择器不接受空的模型,因此表单将失效。当我的datepicker是* optional *并且未初始化为表单内的日期时,我遇到了这个问题。 – Francesco

1

变化从

personalDetail.date = new Date(personalDetail.date);

personalDetail.date = ""; 

$scope.personalDetail={ date: "" }