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
我正在 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