javascript - 从 DOM 中删除组件

标签 javascript angular dom

我有一个可以动态地将组件推送到 DOM 的组件。 但是,每当我推送新的组件集时,我都需要从 DOM 中删除旧组件。 Angular 2 上的一切。:)

如果我删除一个组件,它会起作用,但如果我尝试删除一组组件,它就会不起作用。插入可以正常工作,但移除却不能。 找到下面的代码段,

let resolvedInputs = ReflectiveInjector.resolve(inputProviders);

    let injector = ReflectiveInjector.fromResolvedProviders(resolvedInputs, this.dynamicComponentContainer.parentInjector);

    for(let t of data){


        //create a factory out of the component we want to create
        let factory = this.resolver.resolveComponentFactory(t.component);


        //create the component using the factory and the injector
        var component = factory.create(injector);

        this.currentComponent.push(component);
        // Insert the component into the dom container
        this.dynamicComponentContainer.insert(component.hostView);



    }

    if (this.previousComponent) {

            for(let comp of this.previousComponent){
                comp.destroy();
            }
        }

    this.previousComponent = this.currentComponent;

有什么想法吗..?

最佳答案

您所需要的只是重新初始化this.currentComponent:

this.currentComponent = [];for(let t of data)

之前

<强> WORKING DEMO

关于javascript - 从 DOM 中删除组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48759113/

相关文章:

javascript - 在 Angular 2 中使用浏览器化的 JS 库

javascript - 无法获取显示属性

angular - 在 Guard.CanActivate 方法中调用 router.navigate 是否正确?

php - 在表单中创建黑名单过滤器以避免某些单词

JavaScript 表单脚本适用于 Chrome,但不适用于其他地方

javascript - 使用 Vue.js 在 v-for 中设置背景图片

node.js - 如何在npm start上将scss编译为css

vba - Microsoft Word 中的拼写错误

dom - 由 br 连接的 XPath 节点文本

javascript - 优雅且高性能的 bind() 替代方案