2016-02-09 20 views
39

Yeni AngularJS 1.5 Bileşen kavramında (değiştirmelerde olduğu gibi) "değiştir" seçeneği yoktur.Açısal Bileşen: şablonun yerini alacak mı?

Bileşen olarak tablo satırı<TR> öğesinin olmasını istiyorsam ne önerirsiniz? Geçerli HTML açısından mümkün değil mi?

Gerçek örnek: mailBox bileşeninin içinde posta bileşenleri vardır. İşaretleme posta kutusu bileşenini tablo ve posta kutusu tr.

<mail-box> 
    <mail ng-repeat="mail in $ctrl.mails" mail="mail"></mail> 
<mail-box> 

UPD: direktifleri Yaklaşık ilgili tartışma - Why is replace deprecated in AngularJS?

+0

çözüm değildir etmektir katı yapısal gereksinimlere sahip işaretleme ve CSS kullanın. 'Mail' tam olarak ne yapar? Büyük olasılıkla posta kutusu, işlevselliğini ve tüm şablonu özümsemelidir. – estus

+0

Her postanın ayrı bir bileşen olmasını istiyorum –

+0

Bu, bileşenlerin değil, yönergelerin çalışmasıdır. Bileşenler, kendi kendine yeten UI widget'ları anlamına gelir, Web Bileşenleri hakkında daha fazla bilgi edinin. – estus

cevap

20

Bu-açısal yönlü artık mümkün olmadığından değiştirin: Gerçek bayrağı kullanımdan kaldırıldı

Why is replace deprecated in AngularJS?

Değiştir:

: gerçek bayrağı, çözümlerden daha fazla sorunla karşılaşmıştı. s neden kaldırıldı. bu nedenle direktifleri artık oluşturamazsınız ve geçerli tablo-tr-td işaretlemesi sağlayamazsınız. Bu göründüğü kadar kötü değil neden

Ancak, iki nedeni vardır:

  1. Eğer masaya olmadan yapmak istediğim her şeyi yapabilirim, tr, td, vb div gibi sadece kullanan elemanlar Bu gibi küçük parçaları temsil etmeyi amaçlamayan web bileşenleri (ve direktifler 'u simüle etmek için ilk denemelerdir). aslında onlar bir şey yapıyor tamamen işlevsel bir bileşen olarak düşünülebilir. ile ilgili yapmak istediğiniz her neyse, onun etrafında bir öğe-yönerge oluşturmaya değer olduğunu düşünün, muhtemelen değil.

Belki, ne yapabilirim bir öznitelik-yönergesi yerine kullanıyor:

<tr my-mail-directive></tr> 

ve sorumlusu da ben-posta-yönergesi yapar tr elemanı üzerinde sihirli

+1

Dokümanları doğru bir şekilde anlarsam bileşenler için bileşenler de kullanılamaz. "restrict: Hayır (yalnızca öğelere kısıtlı)" – bersling

+0

@PatrickKelleter kullandığınız ifadeler yalnızca karışıklığa neden olur.Bileşenler, direktifler, direktifler, angular2'nin basit ve basit bir parçası DEĞİLDİR, bir bileşenin sadece insanların kafalarını karıştırdığını söylemek için –

+0

@BrianOgden , ESD seçim direktifleri (ng1, kısıtlama: 'E') şimdi söylediğim ng2'deki bileşenler olarak bilinir - OLD öznitelik yönergeleri (ng1, kısıtlama: 'A') ng2'de direktifler olarak bilinmez. ve EVET - ng2'de direktifler var. Direktiflerin ng2'nin bir parçası olmadığını söyleyenler yanlıştır - sade ve basit. belgelerini inceleyin https://angular.io/docs/ts/latest/guide/attribute-directives.html –

İlgili konular