Angular2 - 删除所有/最近的子组件后无法添加子组件
Angular2 - Can't add child component after deleting all/recent child components
我正在通过父组件中的按钮动态添加子组件。它工作正常,我可以根据需要添加任意数量的孩子,但是一旦我删除最后一个孩子(刚刚添加),添加新的孩子就不再有效了。
这是我的做法:
父.ts
import {Component,DynamicComponentLoader,ElementRef,AfterViewInit,Injector} from 'angular2/core';
import {bootstrap} from 'angular2/platform/browser';
import {ChildComponent} from './child.ts';
@Component({
selector: 'app',
host: {'id':'children'},
template: `<button (click)="addChild()" >Add Child</button><div #here></div>`
})
class AppComponent implements AfterViewInit{
public counter = 0;
constructor(private _loader:DynamicComponentLoader,private _elementRef:ElementRef) {}
addChild(){
var app = this;
this._loader.loadIntoLocation(ChildComponent,this._elementRef,'here').then(child => {
child.instance.id = app.counter++;
});
}
}
bootstrap(AppComponent);
儿童网
import {Component,OnInit} from 'angular2/core';
@Component({
selector: "div",
host: {'[attr.id]':'id'},
template: "Child Component <button (click)='remove()' >Remove Me</button>"
})
export class ChildComponent implements OnInit{
public id:number;
remove(){
$("#"+this.id).remove();
}
};
更新
.dispose()
自beta.16以来destroy()
源语言
我认为你应该使用
child.dispose();
而不是使用 jQuery 删除标签。
另请参阅角度 2 - 动态添加/删除组件
您可以在ComponentRef
类上使用 dispose
方法来删除组件。
为此,您需要以这种方式将其提供给组件实例本身:
addChild(){
var app = this;
this._loader.loadIntoLocation(ChildComponent,this._elementRef,'here').then(child => {
child.instance.id = app.counter++;
child.instance.ref = child;
});
}
并在组件中像这样使用它:
@Component({
selector: "div",
host: {'[attr.id]':'id'},
template: "Child Component <button (click)='remove()' >Remove Me</button>"
})
export class ChildComponent implements OnInit{
public id:number;
remove(){
this.ref.dispose();
}
};
相关文章:
- 如何定义组件添加到DataItem的顺序
- React:向现有组件添加道具
- 向React中的高阶组件添加方法
- 在 React 中向组件添加新输入并跟踪状态
- Angular2 - 尝试将组件从父组件添加到子组件中
- extjs4 - 将自定义组件添加到容器
- 将react组件添加到contenteditable或innerhtml
- 反应多个组件添加项目
- 如何向 ReactJS 组件添加多个类
- 可以't将组件添加到dojox/layout/GridContainer
- KnockoutJs组件-添加默认类
- 如何使用React.js而不是JQuery.js克隆React组件(添加到其他地方)
- 向动态创建的组件添加事件绑定
- 如何在rteplugins下为richtext组件添加图像插件
- 为每个reactJS组件添加组件
- 如何向父窗口的组件添加字符
- React:如何给库中的组件添加一个props
- Highcharts提示?如何向hiccharts DOM组件添加类或id ?
- 用于向组件添加多个订阅的React mixin
- 如何在vue.js中为动态组件添加道具