Отмена регистрации виджетов Dojo

Как уничтожить все виджеты, заключенные внутри DIV? Прикрепленный код хорошо работает, если вмещающий элемент является виджетом dojo (например, формой).
Просто повторюсь, как отменить регистрацию всех виджетов, заключенных внутри элемента DOM, такого как DIV.

require(["dojo/ready"], function(ready) {
        ready(function(){
         var parentNode = dijit.byId('enclosingDivId');
            if (parentNode) {
               parentNode.destroyRecursive(true);
            }
        });
    })

person user1818573    schedule 12.11.2012    source источник


Ответы (1)


на основе dijit/registry документации я предлагаю вам сделать что-то вроде этого:

require(["dojo/_base/array", "dijit/registry"], function(arrayUtil, registry){
    var formWidgets = registry.findWidgets(someNode);
    formWidgets.forEach(function (widget) {
        widget.destroyRecursive();
    }); 
});
person k2s    schedule 12.11.2012