Mam komponent, do którego przekazuję szablon. Wewnątrz tego komponentu chciałbym przekazać kontekst, aby móc wyświetlać dane.Przekazywanie kontekstu do szablonu przez ngOutletContext w Angular2
@Component({
selector: 'my-component',
providers: [],
template: `
<template [ngTemplateOutlet]="templ" [ngOutletContext]="{isVisible: true}">
</template>
`
})
export class MyElementComponent implements OnInit {
@ContentChild(TemplateRef) templ;
constructor(){}
}
Teraz przy użyciu składnika wewnątrz innego składnika:
<my-component>
<template>
{{isVisible ? 'yes!' : 'no'}}
</template>
</my-component>
Więc w my-component
ja przechodząc szablon, który jest obsługiwany w swojej klasie przez @ContentChild
nazwą templ
.
Następnie w szablonie my-component
„s I m przechodzącą templ
do ngTemplateOutlet
i dodatkowo, ja przechodząc kontekst korzystania ngOutletContext
który ma isVisible
zestaw do true
.
Powinniśmy zobaczyć na ekranie yes!
, ale wydaje się, że kontekst nigdy nie jest przekazywany.
Moja wersja kątowa:
"@angular/common": "^2.3.1",
"@angular/compiler": "^2.3.1",
"@angular/core": "^2.3.1",
Jestem stoi ten sam problem. Masz rację, kontekst nigdy nie przechodzi. Dzieje się tak dlatego, że szablon przekazany jako zawartość do jest w rzeczywistości związany z kontekstem hosta . Chciałbym też, żeby to działało, ale nie widzę jeszcze żadnego sposobu. –
@AlexanderLeonov Zobacz moją odpowiedź. Znalazłem to. – Tukkan