uib-datepicker-popup 不会重新打开

Posted

技术标签:

【中文标题】uib-datepicker-popup 不会重新打开【英文标题】:uib-datepicker-popup won't reopen 【发布时间】:2018-11-22 07:00:41 【问题描述】:

我正在尝试使用 uib-datepicker-popup,但遇到了一个问题,即一旦打开日历并选择一个日期,我就无法在不刷新屏幕的情况下重新打开日历。我单步执行 ng-click 上的函数调用,并将 is-open 标志设置为 true,但第一次后弹出窗口不显示。

这是 html

<span class="input-group" >
    <input type="text" class="input-sm "  uib-datepicker-popup="format"
           ng-model="requestDate" is-open="opened1"
           datepicker-options="dateOptions"  close-text="Close"  />
    <span class=" input-sm" >
        <button type="button" class="btn btn-default"  ng-click="open1()">
          <i class="glyphicon glyphicon-calendar"></i>
        </button>
    </span>
</span>

还有控制器:

$scope.format = 'yyyy-MM-dd';
$scope.dateOptions = 
    'year-format': "'yy'",
    'starting-day': 1
;

$scope.open1 = function() 
    $scope.opened1 = true;
;

我不明白为什么它打不开……有什么想法吗?

【问题讨论】:

还有其他事情正在发生,因为这应该可以工作而无需刷新页面。你能在你的问题上整理一个 sn-p 来展示你所看到的行为吗?没关系,但从技术上讲,您不需要控制器方法,您可以直接在标记中使用ng-click="opened1 = true" 我有几乎相同的 html、$scope.dateOptions$scope.formatng-click 在同一页面上调用多个日历。我没有像你这样的问题。我看到我们的代码之间的唯一区别是我有一个popup-placement="top" 属性 它对我来说似乎工作得很好:jsfiddle.net/ADukg/24313 你使用的是什么版本的 angularjs 和 angular-ui-bootstrap? 【参考方案1】:

感谢大家的帮助。发布问题后,我进行了更多搜索,并遇到了解决问题的方法……不知道为什么它会起作用,但确实如此。

我将 open1 函数更改为以下...我让它先为一个工作,然后扩展为,以便我可以将它用于所有...

    $rootScope.openCalendar = function($event,whch) 
        $event.preventDefault();     <- I had tried this before
        $event.stopPropagation();    <- I had tried this before
        $rootScope.datepicker = [whch]: true; 

;

在我的 HTML 中,我更改了两行:(查找

<input type="text" class="input-sm "  uib-datepicker-popup="format"
       ng-model="requestDate" is-open="datepicker.opened1"    <--
       datepicker-options="dateOptions"  close-text="Close"  />
<span class=" input-sm" >
    <button type="button" class="btn btn-default"  ng-click="openCalendar($even, 'opened1')">   <--
      <i class="glyphicon glyphicon-calendar"></i>
    </button>
</span>

从我目前看到的情况来看,这非常有效。我想我也可以通过使用 Lex 的建议来缩短它......

再次感谢!

【讨论】:

以上是关于uib-datepicker-popup 不会重新打开的主要内容,如果未能解决你的问题,请参考以下文章

Angular UI datepicker 的日期错误

子组件不会重新渲染,但父组件会重新渲染。如何让子组件重新渲染?

Postgres 截断重新启动身份不会重新启动身份

集合视图不会每次都重新加载

AMQP 连接丢失不会杀死父进程,因此永远不会发生重新连接

React 状态不会更新,并且列表不会重新呈现