Şablonu aktardığım bir bileşenim var. Bu bileşenin içinde içeriği görüntüleyebilmek için içeriği geçmek istiyorum.Angular2'de ngOutletContext aracılığıyla kalıba geçirme
@Component({
selector: 'my-component',
providers: [],
template: `
<template [ngTemplateOutlet]="templ" [ngOutletContext]="{isVisible: true}">
</template>
`
})
export class MyElementComponent implements OnInit {
@ContentChild(TemplateRef) templ;
constructor(){}
}
Şimdi diğer bileşenin iç bileşenini kullanırken:
<my-component>
<template>
{{isVisible ? 'yes!' : 'no'}}
</template>
</my-component>
Yani my-component
I adıyla templ
ile @ContentChild
tarafından 's sınıfında işlenir bir şablon geçirerek. i ngTemplateOutlet
için templ
geçirerek ve buna ek olarak, bir true
için isVisible
seti vardır ngOutletContext
kullanılarak bağlamı geçirerek my-component
sitesindeki şablonda sonra
.
Ekranda yes!
'u görmeliyiz, ancak bağlamın hiçbir zaman geçmediği anlaşılıyor.
Benim açısal versiyonu: Uzun bir süre sonra
"@angular/common": "^2.3.1",
"@angular/compiler": "^2.3.1",
"@angular/core": "^2.3.1",
Ben aynı sorunu yüzleşiyorum için değişiklik günlüğünü arama yapın. Haklısın, bağlam asla geçmez. Bunun nedeni, içerik olarak öğesine geçirdiğiniz şablonun aslında 'in ana bilgisayarının içeriğine bağlı olmasıdır. Bunu da işe almak istiyorum ama henüz bir yol göremiyorum. –
@AlexanderLeonov Cevabıma bak. Buldum. – Tukkan