【问题标题】:uib-datepicker-popup calendar with null/NaN if input initially null如果输入最初为 null,则带有 null/NaN 的 uib-datepicker-popup 日历
【发布时间】:2016-08-24 05:20:47
【问题描述】:

我使用 UI Bootstrap 1.3.2、Bootstrap 3.3.6 和 Angularjs 1.5.5,但我遇到了 uib-datepicker-popup 的问题。如果对应输入字段的值为null/未设置,则日历显示未定义的日期字段(null,NaN):

输入框代码:

<input type="text" uib-datepicker-popup="dd.MM.yyyy" datepicker-options="datepickerOptions" ng-model="mydto.teilnahmebis" />

initDate 选项被忽略 - 来自控制器的代码:

$scope.datepickerOptions = {
                    minDate : new Date( '2010-01-01' ),
                    initDate : new Date() 
                };

如果输入字段已有值,则弹出窗口有效。但通常情况并非如此。任何想法,如何解决这个问题?感谢您的回答。

【问题讨论】:

  • 您可以将您的模型mydto.teilnahmebis 分配给您指定格式的当前日期。
  • 这不起作用,因为模型 - 在 save() 操作后传输到数据库 - 不应该有任何值。有时它需要为空。只有日历应该被初始化。
  • 是的,它应该是空的,它的工作方式就是这样。它工作正常。你可能做错了什么。你检查过你的控制台吗?

标签: angularjs twitter-bootstrap


【解决方案1】:

我遇到了同样的问题,您的 ng-model 变量设置为 invalid date 数据... 检查您是否覆盖了默认值并将其设置为null

【讨论】:

  • 是的,没错,日期是“无效日期”。我通过编码解决了: if ( $scope.mydto.teilnahmebis != null ) { $scope.mydto.teilnahmebis = moment( $scope.mydto.teilnahmebis, 'DD.MM.YYYY' ).toDate(); }
  • 提示:如果 ng-model 不为 null 并且是(有效)日期,我必须将交付的字符串日期转换为 javascript 日期,否则我会遇到 uib-datepicker 的其他问题-弹出窗口。如果我将空字符串/日期转换为日期,我当然会得到一个无效的日期。因此我需要 if 子句。
【解决方案2】:

我认为你可能做错了什么。 我已经为您创建了一个plunker 代码,它应该可以正常工作。 你可以通过它。 https://plnkr.co/edit/Yz2shW?p=preview

【讨论】:

    猜你喜欢
    • 2016-12-01
    • 2017-04-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-29
    • 1970-01-01
    相关资源
    最近更新 更多