【问题标题】:Opening the angular-strap datepicker programmatically以编程方式打开角带日期选择器
【发布时间】:2014-02-10 16:46:39
【问题描述】:

我正在使用 AngularJS 1.2.12 和 angular-strap 2.0.0-rc.2 (mgcrea.github.io/angular-strap/),但我找不到从内部打开 datepicker/timepicker 小部件的方法控制器。我想使用带有这样的日历图标按钮的输入组:

<div class="input-group">
    <input class="form-control" ng-model="searchRequest.from_created" data-autoclose="1" bs-datepicker type="text">
    <span class="input-group-btn">
        <button type="button" class="btn btn-default">
        <i class="glyphicon glyphicon-calendar"></i></button>
    </span>
</div>

我现在可以轻松地为按钮提供 ng-click 功能并从我的控制器打开日历。我只是找不到如何做到这一点的方法。有什么想法吗?

【问题讨论】:

  • 他们有手动打开的选项,所以你可能需要编写可以打开日期选择器的函数,并将她设置为你的 ng-click,以及当你需要使用 $ 从代码打开它时datepicker.show 我没有检查,但您可以使用他们的 src 代码作为参考:github.com/mgcrea/angular-strap/blob/master/src/datepicker/…
  • 有解决办法,用他们的代码检查一下

标签: javascript angularjs datepicker angular-strap


【解决方案1】:

另一种解决方案是将按钮更改为标签,并使用'for'属性。我喜欢它,因为它消除了打开日期选择器的额外 javascript,并且当使用 tab 键时光标不会再停在图标上。

<div class="input-group">
    <input id="createdDate" name="createdDate" class="form-control" ng-model="searchRequest.from_created" data-autoclose="1" bs-datepicker type="text">
    <span class="input-group-btn">
        <label class="btn btn-default" for="createdDate">
        <i class="glyphicon glyphicon-calendar"></i></label>
    </span>
</div>

【讨论】:

  • 非常优雅的解决方案!
  • 太棒了!多年来,我一直在寻找一个好的解决方案。谢谢:-)
【解决方案2】:

文档讨论了以编程方式打开日期选择器,但它没有提供一种简单的方法来获取对已绑定到元素的日期选择器的引用。

在我正在处理的一个项目中,我有一个 datepicker 指令,它几乎将您拥有的 HTML 完全包装到 myDatepicker 指令中。在该指令中,绑定到 &lt;button&gt; 元素的 ng-click 方法本质上是:

scope.openDatepicker = function() {
  element.children('input').focus();
}

这对我来说已经足够好了。



由于 angular-strap 已被重写以摆脱任何 bootstrap.js 依赖项,因此引入了许多错误和奇怪的东西。我正在努力将我的项目代码库升级到较新版本的 angular-strap,我觉得使用 UI Bootstrap 会是一个更好的选择,因为它的代码库更成熟一些。

【讨论】:

  • 呸,也必须这样做。创建了一个问题,还没有反馈
猜你喜欢
  • 1970-01-01
  • 2017-01-29
  • 2020-03-27
  • 1970-01-01
  • 2014-06-29
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
  • 2010-09-29
相关资源
最近更新 更多