我正在使用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上找到,但还没有发布。 我想确保解析日期的方式是正确的吗?有没有更好的方法来处理这个问题并避免出现脚本错误?
答案 0 :(得分:0)
通常,在您的应用初始化后,服务器数据需要一段时间。同时,datepicker试图在ng-model中处理null。
虽然您当然可以等待来自bootstrap的修复,但我认为您可以考虑在服务器数据可用之前初始化日期,例如今天的日期或任何适当的日期。
$scope.startDate = ($scope.startDate == null) ? new Date() : new Date($scope.startDate);
编辑:我在jsbin编写了一个简单的日期选择器,但似乎无法在控制台中收到错误。也许你可以更新它并重现?