2014-07-07 25 views
56

Yönergede çalışıyorum ve childs sınıf adını bulmak için element parametresini kullanarak sorun yaşıyorum.AngularJS yönergesinde alt öğe bulun

.directive("ngScrollList", function(){ 
    return { 
     restrict: 'AE', 
     link: function($scope, element, attrs, controller) { 

      var scrollable = element.find('div.list-scrollable'); 

      ... 
     } 
     }; 
}) 

Ben etiket adıyla bulabilirsiniz ama ben konsolda görebileceğiniz gibi sınıf adına göre bulmak için başarısız: böyle bir şey yapmanın doğru yol olacağını

element.find('div') 
[<div class=​"list-viewport">​…​</div>​,<div class=​"list-scrollable">​…​</div>​] 
element.find('div.list-scrollable') 
[] 

? bağlantı fonksiyonu, don içinde, aynı zamanda

// link function 
function (scope, element, attrs) { 
    var myEl = angular.element(element[0].querySelector('.list-scrollable')); 
} 

: Bunu yapmak, ben jQuery ekleyebilir biliyorum, ama bu bir overkill .... bağlantı fonksiyonunda

+0

Emin değilim (http://stackoverflow.com/questions/17283697/angularjs-how-to-find-using-jqlite)? – Pete

cevap

96

jQlite (açısal "jQuery" bağlantı noktası), sınıflara göre aramayı desteklemez.

Uygulamanıza jQuery'yi eklemek bir çözüm olurdu.

Başka

QuerySelector veya QuerySelectorAll kullanıyor:
link: function(scope, element, attrs) { 
    console.log(element[0].querySelector('.list-scrollable')) 
} 

Biz HTML öğesidir element dizi ilk öğesini kullanın. element.eq(0) aynı sonucu verecektir. Bu [yardım] eğer

FIDDLE

+9

'.querySelectorAll()' hakkında (çoklu seçim için) unutmayın. –

27

olmaz acaba $ kullanarak scope değişkeninizi adlandırın. Bu, açısal servislere özel bir açısal sözleşmedir ve kendi değişkenleriniz için kullanmak istediğiniz bir şey değildir.

İlgili konular