получите все виджеты в элементе

Из документов додзе о dijit.registry, Я вижу forEach метод принимает последний параметр thisObject. Но это не делает пути, каков тот объект. Действительно ли это - dijit виджет или объект додзе?

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

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

Но это уничтожает ВСЕ виджеты на странице...

6
задан peirix 31 May 2010 в 08:42
поделиться

1 ответ

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

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

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

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

3
ответ дан 17 December 2019 в 18:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: