Angular2'de bir bileşen başka bir bileşenin içine nasıl yerleştirilir?
Angular'da yeniyim ve hala anlamaya çalışıyorum. Microsoft Virtual Academy'deki kursu takip ettim ve harikaydı, ancak söyledikleri ile kodumun nasıl davrandığı arasında küçük bir tutarsızlık buldum! Özellikle, "bir bileşeni başka bir bileşenin içine koymayı" denedim:
@Component({
selector: 'parent',
directives: [ChildComponent],
template: `
<h1>Parent Component</h1>
<child></child>
`
})
export class ParentComponent{}
@Component({
selector: 'child',
template: `
<h4>Child Component</h4>
`
})
export class ChildComponent{}
Bu, kursta yaptıkları örnekle aynı, ancak benim kodumda çalışmıyor! Özellikle VisualStudio bana 'directives' özelliğinin bileşen dekoratöründe mevcut olmadığını söylüyor. Bunu nasıl çözebilirim?
36
3
Bir bileşeni
directives
içine koyamazsınızBunu
@NgModule
bildirimlerinde kaydedersiniz:ve sonra bunu Ebeveyn Şablon HTML'sine şu şekilde koyarsınız: ``
Bu kadar.
Yönergeler özelliğini kaldırırsanız çalışması gerekir.
Yönergeler bileşenler gibidir ancak nitelikler içinde kullanılırlar. Ayrıca
@Directive
bildirimcisine sahiptirler. Yönergeler hakkında daha fazla bilgi için Yapısal Yönergeler ve Öznitelik Yönergeleri sayfalarına bakabilirsiniz.Ayrıca sözlüğü açarsanız bileşenlerin de yönerge olduğunu görebilirsiniz.
Fark, bileşenlerin bir şablona sahip olmasıdır. Bakınız Angular Mimarisi genel bakış.
@Component
metadatası
directives` niteliğine sahip değildir. Bakınız Bileşen dekoratörü.Sanırım Angular-2 sürümünüzde yönergeler Bileşen dekoratöründe desteklenmiyor, bu nedenle @NgModule içindeki diğer bileşenlerle aynı yönergeyi kaydetmeniz ve ardından aşağıdaki gibi bileşene içe aktarmanız ve ayrıca
directives'i kaldırmanız gerekir: [ChildComponent]
öğesini dekoratörden kaldırın.