0

私はeonasdan datetimepickerでテキスト入力をしています。そのためのブートストラップツールチップがあります。datetimpicker がアクティブなときにツールチップを非表示にしたい。

日時ピッカーがアクティブな場合、css クラス (.bootstrap-datetimepicker-widget) があります。そのcssクラスを持つアイテムの数を取得しようとしました。firebugを介してデバッグするときにもその番号を取得しました。(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 呼び出しが 1 回限りの DOM 検索を実行してから、$scope.noOfDateTimePickers. その DOM 検索は 1 回であるため、 $scope 変数は決して変更されず、トリガー関数が呼び出されることはありません。

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

私のお勧めは、ページ上のウィジェットの数を決定するためにこの 1 回限りの jQuery 呼び出しから抜け出す方法を見つけることです。代わりに、ウィジェットを表すオブジェクトの配列を用意し、そのオブジェクトに基づいてロジックを実行します。

于 2016-03-29T13:00:37.067 に答える