Angular 4/5动态组件,创建新实例

时间:2018-06-14 08:46:46

标签: javascript angular typescript dynamic views

我正在尝试创建动态信息中心。现在我正在使用这个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);
}

Views

正如您所看到的,我正在渲染相同的组件两次,但如果我单击以使用按钮添加数字,则值将在它们之间共享。有没有办法生成每个组件的新实例来隔离它们?

修改

我添加了stackblitz https://stackblitz.com/edit/angular-tpryfl?file=src/app/view-container/view-container.component.ts

当我把我的代码放入stackblitz时,我意识到我的代码还可以!!但是在我的计算机代码中,我使用的是服务来刷新计数器,所以没关系,所以服务中的计数器必须是常见的,但现在我还有另外一个问题。

是否可以打开同一组件的2个引用,所以如果我在一个组件中添加数字,我会看到同一组件的副本中的更改?

0 个答案:

没有答案