Bootstrap datepicker拆分问题

时间:2015-06-26 19:37:39

标签: angularjs twitter-bootstrap datepicker

我正在使用bootstrap datepicker。 将值从datepicker发送到服务器时,我的格式为mm / dd / yyyy例如:06/24/2015

当我从服务器返回值时(" 06/24/2015"),我试图用06/24/2015填写datepicker输入。

为此,我试图做这样的事情:

$scope.startDate = ($scope.startDate == null) ? null : new Date($scope.startDate);

现在$ scope.startDate是2015年6月24日星期三00:00:00 GMT-0500(中央标准时间)

然后我将其格式化为在datepicker输入中显示日期,如下所示:

$scope.startDate = $filter('date')($scope.startDate,'MM/dd/yyyy');

现在价值是06/24/2015

一切正常,但我看到一个脚本错误说:

TypeError: Cannot read property 'split' of undefined
at createParser (ui-bootstrap-tpls-0.11.0.min.js:8)
    at parse (ui-bootstrap-tpls-0.11.0.min.js:8)
    at m (ui-bootstrap-tpls-0.11.0.min.js:8)
    at link.k.$render (ui-bootstrap-tpls-0.11.0.min.js:8)
    at Object.<anonymous> (angular.js:23295)
    at l.$digest (angular.js:14235)
    at l.$apply (angular.js:14506)
    at l (angular.js:9659)
    at S (angular.js:9849)
    at XMLHttpRequest.D.onload (angular.js:9790)

我搜索了很多问题,他们中的大多数都说这是datepicker中的一个错误,可以在github master上找到,但还没有发布。 我想确保解析日期的方式是正确的吗?有没有更好的方法来处理这个问题并避免出现脚本错误?

1 个答案:

答案 0 :(得分:0)

通常,在您的应用初始化后,服务器数据需要一段时间。同时,datepicker试图在ng-model中处理null。

虽然您当然可以等待来自bootstrap的修复,但我认为您可以考虑在服务器数据可用之前初始化日期,例如今天的日期或任何适当的日期。

$scope.startDate = ($scope.startDate == null) ? new Date() : new Date($scope.startDate);

编辑:我在jsbin编写了一个简单的日期选择器,但似乎无法在控制台中收到错误。也许你可以更新它并重现?