0

使用 dojo 时出现错误:无法读取 null 的属性“样式”。并非总是如此,但经常如此。我试图弄清楚会发生什么。在我的应用程序中,我需要在我的函数中使用 dojo 功能,例如:

function updateModifySettings() {
    require(["dijit/registry"], function(registry){
          var drag = registry.byId("toolbar.modify.drag").checked,
              rotate = registry.byId("toolbar.modify.rotate").checked,
              resize = registry.byId("toolbar.modify.resize").checked,
              ...
    }
}

我是 dojo 的新手,不知道如何以正确的方式编写上面的代码。我认为这段代码会导致错误。

4

1 回答 1

3

“要求”部分应该在函数之外。如果您希望 updateModifySettings 成为全局函数,请尝试以下操作:

require(["dijit/registry"], function(registry){
    window.updateModifySettings = function () {
        var drag = registry.byId("toolbar.modify.drag").checked,
          rotate = registry.byId("toolbar.modify.rotate").checked,
          resize = registry.byId("toolbar.modify.resize").checked,
          ...

    }
});

Dojo 在 1.7 中切换到使用异步模块定义 (AMD)格式,这需要一种新的方式来加载它的模块。您可以在此处阅读有关如何在 AMD 中构建和引用 Dojo 模块的信息。

window对象是 JavaScript 中的顶级对象。通过将函数添加到window对象,它们可以全局使用。

于 2012-06-27T19:50:13.333 回答