我正在尝试创建动态信息中心。现在我正在使用这个dynamicServer来注入组件,但是当我第二次显示相同的组件时,信息之间会共享。我正在尝试隔离“视图”并创建一个新实例。有什么帮助吗?
dynamicServer.ts
loadComponent(viewContainerRef: ViewContainerRef) {
const childComponent = this.factoryResolver.resolveComponentFactory(this.resolveView(this.ViewtoInjet));
const instance = viewContainerRef.createComponent(childComponent).instance;
}
ViewContainer.ts
@ViewChild('dynamic', {
read: ViewContainerRef
}) viewContainerRef: ViewContainerRef;
constructor(@Inject(DynamicServiceTestService) service, private winRef:
WindowRefService) {
this.service = service;
}
ngOnInit() {
this.service.loadComponent(this.viewContainerRef);
}
正如您所看到的,我正在渲染相同的组件两次,但如果我单击以使用按钮添加数字,则值将在它们之间共享。有没有办法生成每个组件的新实例来隔离它们?
修改
我添加了stackblitz https://stackblitz.com/edit/angular-tpryfl?file=src/app/view-container/view-container.component.ts
当我把我的代码放入stackblitz时,我意识到我的代码还可以!!但是在我的计算机代码中,我使用的是服务来刷新计数器,所以没关系,所以服务中的计数器必须是常见的,但现在我还有另外一个问题。
是否可以打开同一组件的2个引用,所以如果我在一个组件中添加数字,我会看到同一组件的副本中的更改?