Tim*_*tin 11 components dispose dynamic angular
我需要能够动态添加和删除角度2组件.为此,我正在使用loadIntoLocation和dispose方法,如下所示:
添加组件(来自布局管理器):
this.m_loader.loadIntoLocation(MyComponent, this.m_element, 'content').then(_componentRef => {
// Create the window and set its title:
var component: MyComponent = (_componentRef.instance);
component.ref = _componentRef;
// init the component content
});
Run Code Online (Sandbox Code Playgroud)
删除组件(从组件中):
this.ref.dispose();
Run Code Online (Sandbox Code Playgroud)
它几乎正常工作: - 如果我添加一个组件,并关闭它,它可以工作 - 如果我添加几个组件,它们工作 - 但如果我添加组件A,然后删除它,然后添加组件B,似乎Angular给了我对A的引用,并保留一些旧的值(我的组件是可拖动的,在这种情况下,B将被创建A,当我销毁它时)
有没有办法让Angular摧毁组件,或者至少强制它创建新组件?
正如蒂姆所说,
引用@ tbosch的评论
Angular默认重用以前创建的DOM元素
因此,为了避免这种行为,也可以从注释中获取,您可以使用APP_VIEW_POOL_CAPACITY
它并将其指定0
为值.
bootstrap(MyApp, [provide(APP_VIEW_POOL_CAPACITY, {useValue: 0})])
Run Code Online (Sandbox Code Playgroud)
请注意,由于#5993APP_VIEW_POOL_CAPACITY
删除了beta.1,因此正在重新创建DOM.
归档时间: |
|
查看次数: |
9889 次 |
最近记录: |