2010-05-31 3 views
5

От dojo documents от dijit.registry, я вижу, что метод forEach принимает последний параметр thisObject. Но это не так, как этот объект. Это виджет-диджит или объект додзё?получить все виджеты внутри элемента

Я хочу уничтожить все виджеты внутри элемента (который будет заменен на AJAX), чтобы они могли быть проанализированы снова без противоречивых идентификаторов.

dijit.registry.forEach(function(w) { 
    w.destroyRecursive(); 
}, dojo.byId("ajaxElement")); 

Но это разрушает ВСЕХ виджетов на странице ...

+0

Проверьте этот вопрос в stackoverflow. На него было наложено: http://stackoverflow.com/questions/2763983/dojo-and-unregistering-widgets – mtchuente

ответ

3

thisObject является объектом возможности для вызова функции передается в качестве первого параметра forEach.

Несколько решений вы можете использовать в этом случае:

1) Используйте dijit.findWidgets, чтобы найти все dijits в узле DOM и уничтожить их по одному. dijit.findWidgets возвращает массив виджетов, который принимает domnode как параметр 2) dojo.parser.parse возвращает массив всех создаваемых диджитов, сохраняет этот массив и уничтожает диджеты до того, как вы снова вызовете dijit.parser.parse.

3) Используйте dijit.registry.filter, чтобы отфильтровать диджиты, которые вы хотите сохранить.

Смежные вопросы