2014-10-28 17 views
8

<ol> ve <li> öğelerinin bir akordeon oluşturduğu bir Açısal yönerge var, her bir <li> öğesinin içeriği geçirilmiş bir şablona sarılıyor. Bu <li> öğelerinden herhangi birinin bir hatası olup olmadığını kontrol etmek için bir yöntem kullanmam gerekiyor ve bu akordeonu açtığımda, öğesinden yöntemini iptal etmenin bir yolunu bulamıyorum.Transclude işlemi bittikten sonra bir yöntemde ateşleme

Bunu doğru olarak zamanlayacak bir kanca veya yönerge yapılandırması var mı?

+0

Bunun gibi bir şey benim için de faydalı olurdu. AngularJS'de bir olayı yayınlayabilir veya yayınlayabilirsiniz. Ancak, içeriğinizi nasıl dönüştürdüğünüze de bağlı. Ng-if ise ng-repeat'dan farklıdır ve transclude true veya "element" olarak ayarlanmış olmanıza da bağlıdır. –

+3

@ b.e.hollenbeck plunkr/fiddle kelimesini ekleyebilir misiniz? –

+0

Yönerginizin nasıl yapılandırıldığını ve nasıl çalıştığını görmek için bazı örnek html'yi görmemiz gerekir. Sonra ne yapılabileceğini görebiliriz. Dokümanlar, kullanabileceğiniz bir geri bildirime değinir: https://code.angularjs.org/1.3.10/docs/api/ng/service/$compile#transclusion-functions – JoseM

cevap

2

Yönergenin tanım nesnesinde tanımlanan postLink işlevindeki içeriğe erişebileceğinizi varsayalım. Resmi documentation kontrol edin.

compile: function compile(tElement, tAttrs, transclude) { 
    return { 
    pre: function preLink(scope, iElement, iAttrs, controller) { ... }, 
    post: function postLink(scope, iElement, iAttrs, controller) { ... } 
    } 
    // or 
    // return function postLink(...) { ... } 
}, 

ve orada enjekte erişim iElement ve içeriği olabilir:

Yönerge tanım nesnesi tanımlamak için olanak sağlar. Bu, şablon derlemesinden sonra <li> öğelerinin zaten yerinde olması gerekir.

+3

Eğer posta bağlantısı kullanacaksa, sadece '' link: function (kapsam, eleman, attrs, ctrl) 'yerine derleme. –

İlgili konular