0

我有一个带有eonasdan datetimepicker 的文本输入。有一个引导工具提示。我想在 datetimpicker 处于活动状态时隐藏工具提示。

当日期时间选择器处于活动状态时,有 css 类(.bootstrap-datetimepicker-widget)。我试图获取具有该 css 类的项目数。通过萤火虫调试时,我也得到了这个数字。(我为 datetimepicker 和工具提示编写了角度指令)

.js文件

    $scope.noOfDateTimePickers = $('.bootstrap-datetimepicker-widget').length;

    $scope.$watch('noOfDateTimePickers',function(newValue, oldValue){
      if(newValue>0){
        $('.dateTimePickerToolTips').removeAttr("data-original-titile");
      }else{
        $('.dateTimePickerToolTips').attr("data-original-titile", $scope.message);
      }
    });

.html 文件

<div datetimepicker>
  <a class data-toggle="tooltip" ng-attr-title="{{tooltipMessage}}" tooltip>
    <input type="text" ng-model="startTime">
  </a>
</div>

如果我的代码有问题,有人可以帮助我吗?

4

1 回答 1

0

您的问题是您的 jQuery 调用正在执行一次性 DOM 搜索,然后将其存储在您的$scope.noOfDateTimePickers. 由于该 DOM 搜索是一次性的,因此您的 $scope 变量永远不会改变,它永远不会调用您的触发器函数。

$scope.noOfDateTimePickers = $('.bootstrap-datetimepicker-widget').length //Called once and is never updated

我的建议是找到一种方法来摆脱这种一次性 jQuery 调用来确定页面上小部件的数量,而是使用一组对象来表示您的小部件并根据该对象执行逻辑。

于 2016-03-29T13:00:37.067 回答