0

dojoを使用すると、エラーが発生します:nullのプロパティ'style'を読み取ることができません。常にではありませんが、非常に頻繁に。私は何が起こるかを理解しようとします。私のアプリケーションでは、関数内で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,
              ...
    }
}

私は道場にとても慣れていないので、上記のコードを正しい方法で書く方法がわかりません。このコードはエラーの原因になると思います。

4

1 に答える 1

3

「require」セクションは関数の外にある必要があります。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 でAsynchronous Module Definition (AMD)形式を使用するように切り替えました。これには、モジュールをロードする新しい方法が必要です。AMD で Dojo モジュールをビルドして参照する方法については、こちらを参照してください。

windowobjectは JavaScript のトップ オブジェクトです。関数をオブジェクトに追加することで、windowグローバルに使用できます。

于 2012-06-27T19:50:13.333 に答える