2016-03-29 28 views
0

eonasdan datetimepicker ile bir metin girişi var. Bunun için bir bootstrap araç ipucu var. Datetimpicker aktifken araç ipucunu gizlemek istiyorum.

datetime seçicisi etkin olduğunda css sınıfı (.bootstrap-datetimepicker-widget) var. Bu css sınıfına sahip olan öğelerin sayısını almaya çalıştım. Firebug'la hata ayıklarken bu numarayı da aldım.

$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 (I datetimepicker ve araç ipuçları için açısal direktifini yazdım) .html fle benim koduyla bazı sorun olup olmadığını

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

birisi, bu konuda bana yardımcı olabilir misiniz?

cevap

0

Sorununuz, jQuery çağrınızın bir kerelik DOM araması yapmasıdır. Bu, daha sonra $scope.noOfDateTimePickers ürününüzde depolanır. Bu DOM araması bir kez olduğundan, $ kapsam değişkeniniz asla tetikleme işlevinizi hiçbir zaman çağırmayacak şekilde değişmez.

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

Benim tavsiye Widget'larınızı temsil nesneler dizisi varsa ve gerçekleştirmek yerine sayfada widget'lar sayısını belirlemek için uzağa bu tek seferlik jQuery çağrısından almak için bir yol bulmaya ve Bu nesneye dayanan mantık.

+0

Yardımlarınız için teşekkürler. $ Scope.noOfDateTimePickers –

+0

için güncelleme değerini nasıl alacağınızı önerebilir misiniz? Aslında bir "yönlendirme oyunu" yönergesi yaptığınızı görmedim. Bu kodu paylaşana kadar, sorunun tamamı teşhis edilemez. Kök sorunu, DOM'ın tamamını bir kez sorgulamak için bir jQuery kullanıyorsunuz, ancak bir kerelik değer olarak 2-yollu model bağlama yapmak için açısal kullanmanızdır. Daha basit bir seçenek, bir tarihçökünü gösterdiğinizde veya gizlediğinizde jQuery çağrısı yapmak olabilir (bu yöntemleri gösterir) –

+0

Evet Chris, datetime seçicisini çağırırken araç ipucu mesajını gizleyebilirim. Ancak, bunun için datetime piker'da hiçbir etkinlik olmadığından araç ipucu mesajını yeniden gösteremez. Bu yüzden yukarıda olduğunu düşündüm. :( –