2015-06-22 27 views
9

Belirtilen öğenin ilk çocuğunu Açısal yönergede almak ve değiştirmek istiyorum. AngularJS yönergesinde ilk çocuğu alın

<div class="wanted"> 
</div> 
<div class="not-wanted"> 
</div> 
<div class="not-wanted"> 
</div> 

Zaten
elm.children('.wanted') 

çalıştı ama sonra benim yönergesi tüm çocukları değiştirir. Bunu nasıl doğru yapabilirim?

+0

Eğer css ile denemeye mi Belirtilen dizindeki birine eşleşti elemanların kümesi azaltın: (ilk çocuk seçici –

+0

güncelleme JqLite çocuklar için seçici kabul etmez daha kodlarıyla –

+3

ile soru) - işte bu yüzden tüm doğrudan çocuk unsurlarını alıyorsun. Buraya bakın: https://docs.angularjs.org/api/ng/function/angular.element – Donal

cevap

7

yapabilirsiniz ya kullanım:

elm.children().first(); 

ya:

elm.children(':first') 

Her ikisi de aynı etkiye sahip olacaktır. İkincisi biraz daha performanslıdır.

+0

TypeError: elm.children (...) 'i aldım. İlki ilk kez – roschulze

+1

için bir işlev değil. yönerge kaynağınız ve html'nizde kullanma biçiminizle ilgili sorularınız mı var? –

+0

ikincisi iyi çalışıyor – roschulze

4

Köşeli jqLite içerir. JqLite, children() için bir seçiciyi kabul etmiyor - bu nedenle, tüm doğrudan çocuk öğelerini alıyorsunuz.

.find'u kullanabilirsiniz. Örneğin:

elm.find('.wanted'); 
+0

Açısal jqLite, bulmak için bir sınıf seçiciyi kabul etmez. Msgstr "Etiket adlarına göre aramalarla sınırlıdır". –

1

Direktifleri

<div ng-repeat="name in names"> 
<div check-render>{{name}}</div> 
</div> 

Kontrolör yardımı ile açısal şekilde

angular.module('myApp').directive('checkRender', function ($timeout) { 
    return { 
     restrict: 'A', 

     link: function (scope, el, attrs) { 
if(scope.$first) 
alert('first called'); 
} 
} 
}); 
+1

Bu hiç mantıklı değil. Özniteliğiniz "özel işlemdir", ancak yönergeleriniz "checkRender" ile sınırlıdır. Ayrıca, sadece ilk çocuğun var olup olmadığını belirlemek için tüm bir denetleyici/yönerge yazmak zorunda mıyım? En iyi yol gibi görünmüyor. –

4

kullandığım: element.children().eq(0)

children() - her elemanın çocukları alın eşleştirilen öğeler kümesi

eq() -

İlgili konular