如何使用ExtJS的.remove()方法一次性移除两个容器
解决ExtJS一次性移除多个容器的问题
嘿,我来帮你搞定这个问题!你遇到的情况是因为ExtJS的remove()方法默认一次只能处理一个组件,你之前写的this.remove(filter, test)之所以没用,是因为remove()的第二个参数其实是布尔值destroy(用来指定是否销毁移除的组件),不是第二个要移除的组件。
下面给你两种靠谱的解决办法:
方法1:逐个调用remove()
直接分别调用remove()方法移除每个容器就行,记得可以加上第二个参数true来销毁组件(避免内存泄漏):
somefunc: function (token, filter, op) { // ... 你的容器创建代码 ... // 移除两个容器 this.remove(test, true); this.remove(filter, true); }
方法2:遍历数组批量移除
如果后续需要移除更多组件,用数组遍历的方式更灵活:
somefunc: function (token, filter, op) { var test = Ext.create({/* 你的test容器配置 */}); var filter = Ext.create({/* 你的filter容器配置 */}); // 把要移除的组件放进数组 var componentsToRemove = [filter, test]; // 遍历移除,注意绑定this上下文 componentsToRemove.forEach(function(comp) { this.remove(comp, true); }, this); }
额外提醒
要确保这两个容器已经被添加到当前容器(即this指向的容器)中,如果还没执行add()方法,remove()是不会有效果的哦!
内容的提问来源于stack exchange,提问作者user1234
相关产品推荐
相关产品推荐

