dijit/registry 和 dojo/domReady 的 Dojo 计时问题

Dojo timing issue with dijit/registry and dojo/domReady

我正在 Dojo 中开发单页应用程序,它通过 ajax 提交表单,returns 在呈现页面之前解析 return 值。当我这样做时,我遇到了一个计时错误。

当通过脚本标签包含以下代码时,它会记录未定义:

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

当我将它粘贴到控制台时,我得到了预期的 dijit 小部件。

我怀疑问题出在页面呈现之前触发。有没有一种简单的方法可以确保在当前文档被完全解析并包含在主文档中后发生这种情况window?

也许您应该尝试在尝试访问小部件之前添加 Parser 并调用 Parser.parse()

这是来自 Dojo 文档

Note that waiting for dojo/domReady! to fire is often not sufficient when working with widgets. Many widgets shouldn’t be initialized or accessed until the following modules load and execute:

  • dojo/uacss
  • dijit/hccss
  • dojo/parser