Her şey kod parçanızdan ne istediğinize bağlıdır. Şahsen, kodun herhangi bir mantığı yoksa veya bir denetleyiciye bile ihtiyaç duymuyorsa, o zaman giderim ngInclude
. Genelde, burada görünümü karıştırmak istemediğim daha büyük "statik" html parçalarını koyarım. (yani: Verileri yine de ana Denetleyiciden gelen büyük bir tablo diyelim. <div ng-include="bigtable.html" />
Görünümü dolduran tüm satırlardan daha temizdir )
Mantık, DOM manipülasyonu varsa veya kullanıldığı farklı durumlarda özelleştirilebilir olması (başka bir deyişle farklı şekilde işlenmesi) gerekiyorsa, o zaman directives
daha iyi bir seçimdir (ilk başta ürkütücüler, ancak çok güçlüler, zaman verin) .
ngInclude
Bazen ngInclude's
bunların dış görünüşlerinden etkilendiğini göreceksiniz $scope
/ interface
. Büyük / karmaşık bir tekrarlayıcı gibi diyelim. Bu 2 arayüz bu nedenle birbirine bağlanmıştır. Ana $scope
kısımda bir şey değişirse, dahil edilen kısmın içinde mantığınızı değiştirmelisiniz / değiştirmelisiniz.
Direktifler
Öte yandan, direktiflerin açık kapsamları / denetleyicileri vb. Olabilir . Dolayısıyla, bir şeyi birden çok kez yeniden kullanmanız gereken bir senaryo düşünüyorsanız, kendi kapsamına sahip olmanın hayatı nasıl kolaylaştıracağını ve azaltacağını görebilirsiniz. kafa karıştırıcı.
Ayrıca, DOM ile herhangi bir etkileşimde bulunacağınız her zaman, bir yönerge kullanmalısınız. Bu, test için daha iyi hale getirir ve bu eylemleri bir kontrolör / hizmet / vb .'den ayırır, ki bu istediğiniz bir şeydir!
İpucu: çalışmadığından emin olun ve değil kısıtlamak kullanmak: 'E' IE8'de veriyorsan! Bunun etrafından dolaşmanın yolları var ama can sıkıcı. Sadece hayatı kolaylaştırın ve nitelik / vb. İle devam edin.<div my-directive />
Bileşenler [Güncelleme 01.03.2016]
Angular 1.5'e eklendi, esasen etrafta bir sarmalayıcı .directve()
. Bileşen çoğu zaman kullanılmalıdır. Gibi şeylere varsayılan olarak birçok standart yönerge kodunu kaldırır restrict: 'E', scope : {}, bindToController: true
. Angular2'ye daha kolay geçiş yapabilmek için bunları uygulamanızdaki hemen hemen her şey için kullanmanızı şiddetle tavsiye ederim.
Sonuç olarak:
Çoğu zaman Bileşenler ve Yönergeler oluşturmalısınız .
- Daha genişletilebilir
- Dosyanıza harici olarak şablon oluşturabilir ve sahip olabilirsiniz (ngInclude gibi)
- Ana kapsamı veya yönerge içinde kendi izolat kapsamını kullanmayı seçebilirsiniz .
- Uygulamanız boyunca daha iyi yeniden kullanım
Güncelleme 3/1/2016
Artık Angular 2 yavaşça toparlandığına ve genel formatın (tabii ki burada ve orada bazı değişiklikler olacağını) biliyoruz, sadece yapmanın ne kadar önemli olduğunu eklemek istiyoruz components
(bazen kısıtlamalarına ihtiyacınız varsa yönergeler: ' Örneğin E ').
Bileşenler Angular 2'lere çok benzer@Component
. Bu şekilde logic & html'yi aynı alanda sarmalıyoruz.
Bileşenlerde olabildiğince çok şeyi sarmaladığınızdan emin olun, bu, Angular 2'ye geçişi çok daha kolay hale getirecektir! (Geçiş yapmayı seçerseniz)
İşte bu taşıma sürecini directives
(tabii ki bileşenleri kullanacak olsaydınız çok benzer) açıklayan güzel bir makale : http://angular-tips.com/blog/2015/09/migrating-directives-to-angular-2/