У меня есть компонент, которому я передаю шаблон. Внутри этого компонента я хотел бы передать контекст, чтобы я мог отображать данные.Передача контекста шаблону через ngOutletContext в Angular2
@Component({
selector: 'my-component',
providers: [],
template: `
<template [ngTemplateOutlet]="templ" [ngOutletContext]="{isVisible: true}">
</template>
`
})
export class MyElementComponent implements OnInit {
@ContentChild(TemplateRef) templ;
constructor(){}
}
Теперь при использовании компоненты внутри другого компонента:
<my-component>
<template>
{{isVisible ? 'yes!' : 'no'}}
</template>
</my-component>
Так my-component
я передаю шаблон, который обрабатывается в своем классе по @ContentChild
с именем templ
.
Затем в шаблоне my-component
«s я передаю templ
к ngTemplateOutlet
и, кроме того, я передаю контекст использования ngOutletContext
который имеет isVisible
набор для true
.
мы должны видеть на экране yes!
, но, похоже, контекст не передается.
Моя угловая версия:
"@angular/common": "^2.3.1",
"@angular/compiler": "^2.3.1",
"@angular/core": "^2.3.1",
Я сталкиваюсь с той же проблемой. Вы правы, контекст никогда не передается. Это связано с тем, что шаблон, который вы передаете как содержимое для, фактически связан с контентом хоста . Я бы тоже хотел, чтобы это работало, но я пока не вижу. –
@ АлександрЛеонов Посмотри мой ответ. Я нашел его. – Tukkan