【问题标题】:daterangepicker not working inside ng-ifdaterangepicker 在 ng-if 中不起作用
【发布时间】:2016-08-13 06:18:25
【问题描述】:

我在表单字段中使用 daterangepicker 来显示日期选择器。 如您所见,这在底部的字段中可以正常工作,但在 ng-if 中包含的字段中却不行。

http://plnkr.co/edit/WogKyUDNAVAXQTm3lOJR?p=preview

这不是 daterangepicker 特定的,ng-if 中的任何 jQuery 函数都是如此。

其中一种解决方案涉及使用ng-show,但在这种情况下它必须是ng-if

【问题讨论】:

  • ng-if 如果不满足条件,则删除 dom。这意味着您的 jquery 已经执行并且该元素不存在。因此,当ng-if 评估为真时,您只有文本输入。另一方面,ng-show 更像是一种显示隐藏行为。所以元素存在并且你的 jQuery 能够转换它。同样ng-if 意味着更多的 dom 操作,因为删除和添加元素到 dom

标签: jquery angularjs datepicker angular-ng-if


【解决方案1】:

找到解决办法:

  1. 将 jQuery 函数包装在 $scope 函数中。
  2. 使用ng-init 调用$scope 函数。

    $scope.initializeDatepicker = function(){ $('.datepicker').daterangepicker(); };

    ng-init="initializeDatepicker()";

【讨论】:

【解决方案2】:

使用 ngDoCheck() 角度生命钩子,在 eveey 更改期间调用的检查..在 ngOnachanges 和 Oninit 之后

【讨论】:

    猜你喜欢
    • 2023-03-04
    • 1970-01-01
    • 2019-08-06
    • 1970-01-01
    • 2017-07-25
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    相关资源
    最近更新 更多