Bileşenin tag name
bileşenini denetleyen ve bazı koşullara göre bileşeni gösteren/gizleyen bir yönergeye sahip olmak istiyorum. Gizlemenin ng-if
gibi davranmasını (komponentin kontrolörünü başlatma değil) göstermeyi istiyorum. Örnek: yönergesi custom-if
İçindeYöngüdümlü yönerge
<my-component custom-if></my-component>
:
return {
compile: function($element) {
if($element[0].tagName === 'some condition'){
//Element is my-component
$element.remove();
}
}
};
Ben sorun ben elemanı kaldırmak bile hala kontrolör my-bileşeninin çağırır olmasıdır. compile
veya preLink
yönergesinin içindeki yönergeyi kaldırırsam, aynı şey olur. Değişti postLink
fonksiyonu: Ben de ng-if
miras çalıştı ama eleman bir comment
çünkü custom-if
yönergesi içindeki bileşenin etiket adını alamayan
UPDATE (muhtemelen yorumun içindeki elemanı sarmak için ng-if
özgü bir davranıştır) Ayrıca çalışmadığından emin olmak için compile
. Bu/elementi gizler ama her zaman çıkarılsa bile kontrolörü başlatır ve ben
bağlantı yerine, size mantık yapmanın derlemek taşıyın. Bunu yapmak o öğeyi DOM'dan kaldırmanıza izin vermeli ve ayrıca o öğeyi bağlantıdan hariç tutacaktır. –
bu yardımcı olmuyor. Ben soru – jonasnas
Tamam yazdım ama anahtar derleme işlevinde şablon derleme bağlantı aşamasını atlamak için $ derleyicisine söylemek. Ve derleyici her zaman denetleyiciye (dördüncü argüman olarak) erişecek olan bağlantı işlevini döndürür, böylece derlemeyi durdurmazsanız her zaman bir denetleyici alırsınız. İyi soru btw. –