Angular ViewContainerRef TemplateRef ElementRef
<h1 id="angular-viewcontainerref-elementref-templateref-componentref">Angular: ViewContainerRef, ElementRef, TemplateRef, ComponentRef</h1><p><em>Basic introduction to these four concepts</em></p>
<h2 id="viewcontainerref">ViewContainerRef</h2>
<p>definition from angular Doc: <strong>Represents a container where one or more views can be attached to a component</strong>, But, this sentense sounds a little strange or meaningless.<br>
keep these points in mind</p>
<ul>
<li>any Dom element can be used as a view Container.</li>
<li>a container is the place where one or more views can be attached to.</li>
<li>In angular, every time the view is append as the last in the view container.</li>
</ul>
<p>In conclusion, viewContainer is used to host componentView or embeddedView.</p>
<h3 id="how-to-get-access-to-viewcontainerref">How to get access to ViewContainerRef?</h3>
<ul>
<li>Through <em>ViewChild</em>, we can get access to <strong>ng-container or template variables</strong> in html template. we can also get injected from constructor. Let's see the example bellow. <strong>remember to add {read: ViewContainerRef} in viewChild</strong></li>
</ul>
<pre><code>@Component({
selector: 'sample',
template: `
<!-- This is component level viewContainerRef, just for easy to understand -->
<!-- <ng-container> assume -->
<span>I am first span</span>
========================example1=======================
<ng-container #vc>
<span>I am the original Content</span>
<!-- the line bellow will be inserted after running -->
<!-- <div>I am inserted template</div> -->
</ng-container>
=======================================================
====================example2======================
<!-- A Virtual ViewContainerRef will be wrapped around the span -->
<!-- it will equal to-->
<!-- <ng-container> vc1 will refer to this node-->
<span #vc1>I am another view Container</span>
<!-- After the code running the next line will be inserted -->
<!-- <div>I am inserted template</div> -->
<!-- </ng-container> this is not exist, just from imaging -->
==================================================
<ng-template #tmp1><div>I am inserted template</div></ng-template>
<span>I am last span</span>
====================example3====================
<!-- After the code running the next line will be inserted -->
<!-- <div>I am inserted template</div> -->
=================================================
<!-- </ng-container> -->
`
})
export class SampleComponent implements AfterViewInit {
@ViewChild("vc", {read: ViewContainerRef}) example1: ViewContainerRef;
@ViewChild("vc1, {read: ViewContainerRef}) example2: ViewContainerRef;
@ViewChild('tmp1') tmp1:TemplateRef<any>;
constructor(private componentLevelViewRef:ViewContainerRef){}
ngAfterViewInit(): void {
this.example1.createEmbeddedView(this.tmp1);
this.example2.createEmbeddedView(this.tmp1);
this.componentLevelViewRef.createEmbeddedView(this.tmp1);
}
}
</code></pre>
<ul>
<li>Injected in constructor of Component and Directive
<ul>
<li>In Directive, see the code bellow. What does the viewContainer bound to? the <strong>div.viewContainer</strong> is the viewContainer.</li>
</ul>
<pre><code> //ts
@Directive({
selector:'',
})
export class Directive{
constructor(
private viewContainer:ViewContainerRef,
){}
ngAfterViewInit(): void {
console.log(this.viewContainer.element.nativeElement);
}
}
============================================
// html
<!-- <ng-container> viewContener will refer to this -->
<div >
elements is attached by the directiive
</div>
<!-- embeded template will be appended here one by one -->
<!-- </ng-container> -->
</code></pre>
</li>
</ul>
<h3 id="what-can-viewcontainerref-do">What can viewContainerRef do?</h3>
<p>here we give a quick property list and method.</p>
<ul>
<li>element: ElementRef; it refers to the contents under ng-container, we can access dom by calling <em>viewContainerRef.element.nativeElement</em>.</li>
<li>injector: Injector; get the injector of current viewContainerRef.</li>
<li>length: get the length of the views attached under this viewContainerRef. we can assume that viewContainerRef has this data </li>
<li>createEmbeddedView<c>(templateRef:TemplateRef<c>,context?:C,index?:number):EmbeddedViewRef<c>This is an important function. see code bellow.</c></c></c></li>
</ul>
<pre><code>this.example1.createEmbeddedView(this.tmp1);
this.example2.createEmbeddedView(this.tmp1);
this.componentLevelViewRef.createEmbeddedView(this.tmp1);
</code></pre>
<ul>
<li>createComponent(componentFactory:ComponentFactory<c>,index?:number,injector?:Injector,projectableNodes?:any[][],ngModule?:NgModuleRef):ComponentRef<c></c></any></c></li>
</ul>
<h2 id="elementref">ElementRef</h2>
<p>A wrapper around a native element. it is simple and straightforward.</p>
<pre><code>class ElementRef<T = any> {
constructor(nativeElement: T)
nativeElement: T
}
</code></pre>
<p>we often use this in constructor by injecting. see code bellow, for both component and directive are the same behavior.</p>
<pre><code>// typescript
@Directive({
selector:'',
})
export class MyDirective{
constructor(public el:ElementRef){}
ngAfterViewInit(): void {
// <div>Hello I am body</div>
console.log(this.el.nativeElement);
}
}
// html
<div my-select>Hello I am body</div>
</code></pre>
<h2 id="templateref">TemplateRef</h2>
<p>it represents an embedded template which can be used to instantiate embedded view. to be honest it is <code><ng-template>xxx</ng-template></code> in html.</p>
<h3 id="how-can-we-get-refer-to-the-templateref">how can we get refer to the TemplateRef</h3>
<p>We ONLY have one way, through ViewChild, contentChild or injector, we can't new a templateRef instance in the fly.</p>
<p>let's see these examples</p>
<pre><code>// html
<ng-template #sample1>I am Sample1</ng-template>
<ng-template pTemplate>I am Sample2</ng-template>
@Directive({
selector: '',
host: {
}
})
export class PrimeTemplate {
@Input() type: string;
@Input('pTemplate') name: string;
constructor(public template: TemplateRef<any>) {}
getType(): string {
return this.name;
}
}
// TS
@ViewChild('sample1',{read:TemplateRef}) sample1:TemplateRef<any>;
@ViewChild(PrimeTemplate) sample2:PrimeTemplate;
sample2.template ------------it is the TemplateRef,
@ContentChild('sample3',{read:TemplateRef}) sample3:TemplateRef<any>,
</code></pre>
<h3 id="what-can-templateref-do">What can TemplateRef do?</h3>
<ul>
<li>
<p>elementRef:ElementRef, it refer to parent view of this template.<br>
see the picture here<br>
<img src="data:image/png;base64,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AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+Ug+AAAAAJSP5AMAAABA+f4XXXgpRZWStJgAAAAASUVORK5CYII="></p>
</li>
<li>
<p>createEmbeddedView(context:C) create an embedded view, difference with ViewContainerRef.createEmbeddedView()</p>
</li>
</ul>
<pre><code>// in templateRef
const viewRef = this.templateRef.createEmbeddedView({$implicit:'implicit param'});
this.viewContainerRef.insert(viewRef,this.this.viewContainerRef.length);
// in ViewContainerRef
this.viewContainerRef.createEmbeddedView(this.templateRef,{$implicit:'implicit param'});
</code></pre><br><br>
来源:https://www.cnblogs.com/kongshu-612/p/14828126.html
頁:
[1]