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.format
和 ng-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 不会重新打开的主要内容,如果未能解决你的问题,请参考以下文章