从dojo文档开始dijit.registry,我看到该forEach方法接受最后一个参数thisObject.但它不是那个对象的方式.它是一个dijit小部件还是一个dojo对象?
我想破坏(将由AJAX被替换的元素)内的所有部件,使他们能够再次没有冲突的ID的解析.
dijit.registry.forEach(function(w) {
w.destroyRecursive();
}, dojo.byId("ajaxElement"));
Run Code Online (Sandbox Code Playgroud)
但这会破坏网页上的所有小部件......
是thisObject调用作为 的第一个参数传入的函数的作用域对象forEach。
在这种情况下,您可以使用以下几种解决方案:
1)用于dijit.findWidgets查找DOM节点中的所有dijit并将其一一销毁。dijit.findWidgets 返回以 domnode 作为参数的小部件数组 2)dojo.parser.parse返回它创建的所有 dijit 的数组,存储该数组并在dijit.parser.parse再次调用之前销毁 dijit。
3) 用于dijit.registry.filter过滤掉您想要保留的 dijis。