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

标签 javascript angular

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

这是我的做法:

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/

相关文章:

javascript - React Player 和加载多个 URL 源

javascript - 如何测试对象是否存在于 Javascript 数组中?

javascript - 根据 span 的内容克隆 div

html - ngx-在 Angular 8 的三元条件下翻译

angular - 无法在订阅 Angular ngoninit 中获取值

javascript - jQuery:使用children()比使用子选择器更有效

angular - angular 2 http.get 对 php 文件没有响应

angular - 如何通过 Angular 代码输入导航到组件

angular - 在构建期间设置环境变量

javascript - 如何使用javascript使用azure函数从存储blob容器读取json文件?