2013-08-01 23 views
71

Kodum:Açısal yönerge adı: yalnızca küçük harfler kullanılabilir mi?

app.directive('abcabc', function(){ alert('directive');}); // working 

ama

app.directive('abcAbc', function(){ alert('directive');}); // not working ! 
app.directive('abc-abc', function(){ alert('directive');}); // not working ! 

Yanlış yapıyorum? Veya Açısal direktif için özel adlandırma kuralları var mı?

cevap

116

AngularJS herkesi mutlu etmeye çalışır!

Bazı kullanıcılar, data-abc-abc gibi veri niteliklerini kullanmayı tercih eder, doğrulayıcıları mutlu tutmayı farzederim. Diğer kişiler abc:abc gibi ad alanlarını kullanmayı tercih eder, diğerleri ise abcAbc gerçek yönerge adını kullanmayı tercih eder. Veya tüm kapaklar ABC_ABC. Ya da x-abc-abc gibi uzantı nitelikleri.

AngularJS, tüm bu durumları kapsamayı denemek için HTML'de kullanılan adı normalleştirir. data- ve x- soyulmuştur, geri kalan kısım, kelime sınırları olarak :, - ve _ ile kamburlanmıştır. Bu, JavaScript'te bildirilen yönergeye bakmak için kullanılan, yukarıda belirtilen vakalardan abcAbc'u yapar.

Buna öznitelik normalizasyonu (US: öznitelik normalleştirmesi) adı verilir ve AngularJS documentation ve source code'da bulunabilir.

+6

hata mesajı alınamıyor! Dokümantasyonu "her iki şekilde de yapabilirsiniz" şeklinde okudum, fakat durum böyle değil. Şaşırdım ki, şu ana kadar sadece 10 tane vardiya var. – spikeheap

+0

Ayrıca, web bileşenleri ad ile satır içi: http://webcomponents.github.io/articles/web-components-best-practices/ –

+1

İngilizcesi yerine "normalleştirme" kelimesinin ABD İngilizcesi formunu kullanmak için son paragrafı değiştirdim Açısal dokümanlar İngilizce yazımını kullandıkları ve İngiliz yazımları için arama yaptıkları için "normalleşme", herhangi bir sonuç getirmez. –

23

Yönergede karşılık gelen ad için html ve camelCase içinde tire ile ayrılmış adlar kullanmalısınız. Eğer dosya üzerinde okuma gibi

: http://docs.angularjs.org/tutorial/step_00

+6

önerilen yol olabilir. ama bundan nefret ediyorum, bütün dosyalarda karşılık gelen direktif arayışları daha sıkıcı. Özellikle birçok kelimeye sahip direktifler için. – ColacX

0

Eh, yönerge adı zorundadır: Eğik adı-ile-tire karşılık gelen direktif adı için nitelik adları ve CamelCase) İşte

için kullandığı en küçük durumda, en azından AngularJS sürüm 1.4.9, aksi halde bir $ inject get

İlgili konular