Winkel-5: templateRef.createEmbeddedView keine Funktion
Hier ist der code, den ich versuche zur Arbeit zu kommen (Winkel-5):
import { Component, ViewChild, TemplateRef, ViewContainerRef } from '@angular/core';
@Component({
selector: 'vcr',
template: `
<template #tpl>
<h1>ViewContainerRef</h1>
</template>
<div>Some element</div>
<div #container></div>
`,
})
export class VcrCmp {
@ViewChild('container', { read: ViewContainerRef }) _vcr;
@ViewChild('tpl') tpl: TemplateRef<any>;
constructor(
private viewContainerRef: ViewContainerRef
) {
}
ngAfterViewInit() {
console.info(this.viewContainerRef);
console.info(this._vcr);
this._vcr.createEmbeddedView(this.tpl);
this.viewContainerRef.createEmbeddedView(this.tpl);
}
}
Das problem ist, dass ich habe diese (templateRef.createEmbeddedView is not a function
) Fehler und verstehen nicht wirklich, warum.
Dieser code basiert auf diesem Beispiel https://netbasal.com/angular-2-understanding-viewcontainerref-acc183f3b682 also ich denke, es sollte funktionieren.
Was mache ich falsch?
Was
beide Anrufe den gleichen Fehler erzeugen
this.viewContainerRef.createEmbeddedView(this.tpl);
beide Anrufe den gleichen Fehler erzeugen
InformationsquelleAutor k102 | 2017-11-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Je nach Winkel 5 changelog:
Benutzen Sie deshalb
ng-template
statttemplate
:Stackblitz Beispiel
oder set
enableLegacyTemplate
zufalse
:Stackblitz Beispiel
Aber Sie sollten wissen, dass
Die option enableLegacyTemplate und die
<template>
element werden beide entfernt werden in Eckige v6.InformationsquelleAutor yurzui
In meinem Fall der Fehler lag an mir vergessen * (Sternchen) vor
ngTemplateOutlet
Ich bin froh, dass es hier war, sonst würde ich es vermissen, und es hat mir geholfen, richtig Weg!
Ich habe diesen auch... vielen Dank Maksim!
bei allem Respekt widersprechen. Es könnte mehr als einen Grund für die gleichen Fehler. Was Maxim zitiert IST einer von mehreren Gründen für die Fehler, die OP berichtet hat.
InformationsquelleAutor Maxim Krabov
Beim Verweis in der *ngIf, else-Klausel kann nicht jede beliebige Komponente sein, aber es muss ein ng-template.
ZB,
ref : https://techoverflow.net/2018/02/17/how-to-fix-angular-typeerror-templateref-createembeddedview-is-not-a-function/
InformationsquelleAutor Monami J