问题 Angular UI Bootstrap - Popup Datepicker


我希望在使用Angular UI Bootstrap库的组件单击按钮时有一个datepicker弹出窗口。 两者都有例子 Angular UI Boostrap 网站,但我没有看到一种方法来组合它们。我不喜欢放置Datepicker的想法 div 作为的属性值 popup 指令的文字。

我也试过用 ng-show 在Datepicker上 div 但我也不能这样做。

这是我目前的代码。

<div ng-controller="DatepickerCtrl" class="input-append">
        <input class="input-small ng-pristine ng-valid" 
                type="text" 
                ng-value="dt" />
        <button type="button" 
                class="btn" 
                popover-placement="right"
                ng-click"showDatePicker=true"      // the show when clicked strategy
                popover="On the Right!">           // Don't see a way to make this encapsulate a div
                    <i class="icon-calendar"></i>
        </button>
        <datepicker ng-model="dt"
                    ng-show="showDatePicker"  
                    starting-day="1"
                    date-disabled="disabled(date, mode)"
                    min="minDate" max="'2015-06-22'">
        </datepicker>
 </div>

我真的不喜欢 ng-show 战略。宁愿让它成为一个流行音乐,但我认为有办法做得更好,所以我也不介意。


7515
2017-07-01 02:33


起源

试试吧 角带。 - Stewie
我已经看了它,如果没有解决方案,最终会使用它。 - Saad Farooq


答案:


更新 2015-08-16 - 从Angular UI Bootstrap 0.13.0开始,此功能现已包含在内!它与我下面描述的非常相似。要使用此功能添加 popover-template="'mytemplate.html'" 要将弹出窗口应用到的元素。

我创造了 新的例子 显示此功能的实际效果。


截至2013-07-02,有一个 公开问题 使用Angular UI Bootstrap项目,允许您将HTML标记放在popover中。

如果/何时合并此更改,您将能够将日期选择器放入模板中,然后通过添加引用此模板 popover-template="mytemplate.html" 到您已声明弹出窗口的元素。

作为此功能的一个示例,您可以看到一个 我最近分叉的Plunker

随着情况的变化,我会更新这个答案。

编辑

如果你喜欢冒险,我使用的代码是基于 请求369,这将导致 这个提交

我知道有三个原因尚未合并提交的原因:

  1. 当父范围被销毁时,需要清除范围。 Pawel Kozlowski在我提交的提交中发表的评论中提到了这一点。
  2. 打开,关闭和重新打开弹出窗口会导致弹出窗口重新打开时绑定到范围中断。我发布了一个解决方法 问题220 (上面链接的同一问题)。
  3. 目前还没有任何测试。

我可能会在本周末找一些时间处理这些问题,以便将它合并到项目中。


13
2017-07-02 19:39



约翰 - 真的很有帮助。但你能解释你在ui-bootstrap.js中修补的内容吗?你有差异吗?我想将该补丁应用到我的ui-bootstrap-tpls.js的0.4.0版本中。我已经应用了其他补丁,我不能单独使用你的mod。在我看来应该可以使用独立的脚本文件来修补它,它只是添加到ui-bootstrap-tpls-0.4.0.js。如果你可以鞭打它真的很酷。 :) - Cheeso
嗨!我已经更新了我的答案。我没有它的差异,但我可能会看看我能做些什么来让代码在周末合并。 - John Oberreuter
感谢更新。这就是诀窍!期待通过此更改获得更新,但就目前而言,这对我有用。 - Cheeso