2016-03-29 17 views
0

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

datetime pickerがアクティブな場合、cssクラス(.bootstrap-datetimepicker-widget)があります。私はそのCSSクラスを持つ項目の数を取得しようとしました。火かき棒でデバッグするときも、その番号を取得しました。

$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); 
     } 
    }); 

.jsfileの.htmlのFLE

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

(私はDateTimePickerのツールチップのための角度のディレクティブを書いた)私のコードといくつかの問題がある場合、誰かが、この上で私を助けることができますか?

答えて

0

ここで問題となるのは、jQueryコールでワンタイムDOM検索が実行されており、これが$scope.noOfDateTimePickersに保存されていることです。そのDOM検索は1回限りであるため、$ scope変数はあなたのトリガ関数を呼び出すことは決してありません。

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

私の推薦は、あなたのウィジェットを表し、オブジェクトの配列を持っているし、実行し、代わりに、ページ上のウィジェットの数を決定するために離れてこの1回jQueryの呼び出しから取得する方法を見つけることですし、そのオブジェクトに基づいた論理。

+0

ありがとうございました。 $ scope.noOfDateTimePickersの更新値を取得する方法を提案することができます –

+0

実際には、 '' 'datetimepicker''という指示をしたとは言いませんでした。あなたがそのコードを共有するまで、完全な問題は診断できません。根本的な問題は、jQueryを使用してDOM全体を一度クエリしてから、角度を使用してそのワンタイム値の2ウェイモデルをバインドすることです。シンプルなオプションは、(それらのメソッドを公開する)datepickerを表示または非表示にするたびにjQuery呼び出しを行うことです。 –

+0

はいChris、datetime pickerを呼び出すときにツールチップメッセージを隠すことができます。そのためにdatetime pikerにイベントがないため、ツールチップメッセージを再度表示することはできません。だから私は上の方法でいいと思った。 :( –

関連する問題