0

Dojo は初めてで、基本的な Hello world モジュールを dojo/MVC で動作させようとしていますが、動作させることができないようです。私はどちらかを取得し続けます

dojo.js e() h.injectUrl/h() での無応答/エラーまたは不可解な構文エラー

FireFox / Firebug を使用している場合に表示される内容です。私は 1.8 を使用しており、CDN とローカル コピーの両方を試しました。

これが以下のコードです。

インデックス.cshtml

    <script src="~/Scripts/dojo/dojo.js" data-dojo-config="async: true, isDebug: true, parseOnLoad: true"></script><script>
    // Require default stuff and new module
    require([
                "~/Scripts/dojoDemo/newModule"
    ],
    function (newModule) {
        newModule.setText("greetings", "Hello peoples");
        settimeout(function () {
            newModule.restoreText("greeting");
        }, 3000);
    });</script><h1 id="greetings">What up</h1>

<br/>
<br/>

newModule.js

define([
    // Define the dependencies
    "dojo/dom"], 
    // Create this function to call new module
    function (dom) {
        var oldText = {};
        return {
            setText: function (id, text) {
                var node = dom.byId(id);
                oldText[id] = node.innerHTML;
                node.innerHTML = text;
            },
            restoreText: function (id) {
                var node = dom.byId(id);
                node.innerHTML = oldText[id];
                delete oldText;
            }
        };
    });
4

1 に答える 1

1

呼び出しではなく、Dojo 構成でモジュールへのパスを指定する必要がありますrequirepathsトップレベルのモジュール名を、ファイルがサーバーに配置されている場所にマップします。デフォルトでは、ファイル パスは dojo.js からの相対パスです。

<script src="~/Scripts/dojo/dojo.js" 
  data-dojo-config="async: true, isDebug: true, parseOnLoad: true, 
     paths: { dojoDemo: '../dojoDemo' }">
</script>
<script>
  require(["dojoDemo/newModule", "dojo/domReady!"], function (newModule) {
      newModule.setText("greeting", "Hello peoples");
      setTimeout(function () {
          newModule.restoreText("greeting");
      }, 3000);
  });
</script>
于 2013-03-01T18:31:13.167 に答える