Dojo и нерегистрирующиеся виджеты

Я плохо знаком с Инструментарием Dojo. Я получаю ошибку

Tried to register widget with id=myButton but that id is already registered

каждый раз, когда я пытаюсь загрузить содержание додзе дважды (значение, что я загружаю содержимое HTML через jQuery. Загрузка в контейнерное отделение). Существует ли способ уже не зарегистрировать зарегистрированные виджеты в додзе? Я видел некоторые примеры, но я действительно не получаю их работа.

Моя кнопка:

<button dojoType="dijit.form.Button" id="myButton">button</button>
27
задан John Korsnes 4 May 2010 в 09:16
поделиться

2 ответа

Если вы хотите отменить регистрацию определенных виджетов, вы можете использовать их destroy () или destroyRecursive () методы. Второй уничтожает все виджеты внутри того, который вы уничтожаете (т.е. вызов destroyRecursive в виджете формы также уничтожит все компоненты формы).

В вашем случае, похоже, лучше всего сделать это до jQuery.load -

var widgets = dijit.findWidgets(<containerDiv>);
dojo.forEach(widgets, function(w) {
    w.destroyRecursive(true);
});

Приведенный выше код отменяет регистрацию всех виджетов в , и сохраняют связанные с ними узлы DOM. Чтобы уничтожить узлы DOM, вместо этого передайте false в destroyRecursive .

Ссылка:

http://dojotoolkit.org/api/1.3/dijit/_Widget/destroyRecursive

37
ответ дан 28 November 2019 в 05:02
поделиться

На основе http://bugs.dojotoolkit.org/ticket/5438 , я нашел достаточный способ уничтожения виджетов додзё:

dijit.registry.forEach(function(w){
                  w.destroy();             
          });
10
ответ дан 28 November 2019 в 05:02
поделиться
Другие вопросы по тегам:

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