2012-06-27 55 views
0

使用dojo我遇到一個錯誤:無法讀取null的屬性'style'。並不總是,但經常。 我試圖弄清楚會發生什麼。在我的應用程序需要使用Dojo功能我的函數中,例如:自定義函數中的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, 
       ... 
    } 
} 

我在道場非常新的,不知道如何以正確的方式上面寫代碼。我認爲這段代碼會導致錯誤。

回答

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, 
      ... 

    } 
}); 

道場在1.7切換到使用Asynchronous Module Definition (AMD)格式,這需要加載的一種新的方式是模塊。您可以閱讀如何在AMD here中構建和引用Dojo模塊。

window object是JavaScript中的頂級對象。通過將函數添加到window對象中,它們在全局範圍內可用。

+0

謝謝。你能解釋一下你的答案嗎?或者分享我可以閱讀的鏈接。 – drnextgis

+0

根據要求更新。 – user1475814