gpt4 book ai didi

javascript - Angular2 - 删除所有/最近的子组件后无法添加子组件

转载 作者:行者123 更新时间:2023-11-28 06:18:25 26 4
gpt4 key购买 nike

我通过父组件中的按钮动态添加子组件。它工作正常,我可以添加任意数量的子项,但是一旦我删除了最后一个子项(刚刚添加),添加新的子项就不再起作用了。

这是我的做法:

parent.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);

child.ts

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()destroy() 自 beta.16

原创

我认为你应该使用

child.dispose();

而不是使用 jQuery 删除标签。

另请参阅Angular 2 - Adding / Removing components on the fly

关于javascript - Angular2 - 删除所有/最近的子组件后无法添加子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35747535/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com