2016-07-16 3 views
1

Я работаю над одностраничным приложением в Dojo, которое отправляет формы через ajax и возвращает анализирует возвращаемое значение перед рендерингом страницы. Когда я иду об этом, у меня заканчивается ошибка времени.Проблема с выбором Dojo с dijit/registry и dojo/domReady

Когда следующий код включается с помощью тега сценария, он записывает неопределенными:

require(["dijit/registry", 'dojo/domReady!'], function(registry){ console.log(registry.byId('my-id')) }); 

Когда я вставить его в консоли, я получаю ожидаемый Dijit виджет.

Я подозреваю, что проблема в том, что это срабатывает до отображения страницы. Есть ли простой способ обеспечить, чтобы это произошло после того, как текущий документ был полностью проанализирован и включен в основное окно?

ответ

2

Возможно, вам стоит попробовать добавить Parser и позвонить по телефону Parser.parse(), прежде чем пытаться получить доступ к виджету.

Это из Dojo документации

Обратите внимание, что ждет dojo/domReady! пожара часто недостаточно при работе с виджетами. Многие виджеты не должны быть инициализированы или доступ до следующей загружающий и выполнить:

  • додзё/СУБВС
  • Dijit/hccss
  • додзё/анализатор
+0

Hmmmm У меня есть кое-что иначе вызывающий парсер, и если я его дважды назову, Dojo это не понравится. –

+0

Возможно, мне нужно использовать setInterval для повторной попытки, пока он не будет найден? –

+0

Я буду принимать этот ответ, потому что он ведет меня по правильному пути, а именно, чтобы признать, что здесь обязательно было условие гонки и просто проверить/повторить до тех пор, пока не найдете. –

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

  • Нет связанных вопросов^_^