如果视图子项存在于模板中,我该如何定义它? 我正在使用像这样的动态组件加载器......
viewContainer.directive.ts
@Directive({
selector: '[viewContainer]'
})
export class ViewContainer {
constructor(public viewContainerRef: ViewContainerRef) {}
}
component.ts
的一部分@ViewChild(ViewContainer)
private viewContainer: ViewContainer;
private _postalMapComponent: any;
private set postalMapComponent(component: any) {
if(!component) {
return
}
let factory = this.resolver.resolveComponentFactory(component);
let viewContainerRef = this.viewContainer.viewContainerRef;
viewContainerRef.clear();
if(this._postalMapComponent)
this._postalMapComponent.destroy();
this._postalMapComponent = viewContainerRef.createComponent(factory);
}
private get postalMapComponent(): any {
return this._postalMapComponent;
}
使用
工作正常<ng-template viewContainer></ng-template>
在模板html文件中。
如果我在模板中使用这样的东西......
<div *ngIf="something">
<ng-template viewContainer></ng-template>
</div>
...而something
评估false
我遇到了未定义的错误
undefined is not an object (evaluating 'this.viewContainer ...
我怎么能解决这个问题?有没有办法只在模板中存在ViewChild?