Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法在dojo中将输出打印到控制台_Dojo - Fatal编程技术网

无法在dojo中将输出打印到控制台

无法在dojo中将输出打印到控制台,dojo,Dojo,我是dojo的初学者,我正在尝试使用dojo代码将输出打印到控制台。但我不知道下面的代码中有什么问题,如何将输出打印到控制台 <html> <head> <script type = "text/javascript" src = "dojo/dojo.js" data-dojo-config = "async: true, isDebug : true" > </script> </head> <body> <h1

我是dojo的初学者,我正在尝试使用dojo代码将输出打印到控制台。但我不知道下面的代码中有什么问题,如何将输出打印到控制台

<html>
<head>
<script type = "text/javascript" src = "dojo/dojo.js" data-dojo-config = "async: true, isDebug : true" >
</script>
</head>
<body>
<h1 id = "greeting">Hello</h1>
<script>
define(["dojo/dom"],function(dom) {
var Twitter = declare(null, {username:"defaultusername",
    say :function(msg)
    {
        console.log("Hello "+msg);
    }
});
var myInstance = new Twitter();
myInstance.say("Dojo");
});
</script>
</body>
</html>

你好
定义([“dojo/dom”],函数(dom){
var Twitter=declare(null,{username:“defaultusername”,
say:函数(msg)
{
log(“Hello”+msg);
}
});
var myInstance=newtwitter();
myInstance.say(“Dojo”);
});

不能在内联脚本代码中定义,内联脚本代码是一个类定义,放在类文件的最上面一行,这意味着define将文件名映射到其函数的返回值

这意味着,如果你有

dojo_toolkit /
  dojo/
  dijit/
  dojox/
  libs/
    myWidgets/
       foo.js
而foo.js读取

define(["dijit._Widget"], function(adijit) {
  return declare("libs.myWidgets.foo", [adijit], function() {
    say: function(msg) { console.log(msg); }
  });
});
然后注册一个新模块,名为
libs
/
myWidgets
/
foo
。您应该确保每个define中返回的declaredClass与文件层次结构匹配

也就是说,define对您不起作用的原因是上面的解释。它是内联的,没有用来猜测declaredClass名称的
src
。将代码重写为定义(“aTwitterLogger”),[“

define("aTwitterLogger", ["dojo/_base/declare", "dojo/dom"],function(declare, dom) {
  var Twitter = declare(null, {
      username:"defaultusername",
      say :function(msg)
      {
          console.log("Hello "+msg);
      }
  });
  var myInstance = new Twitter();
  myInstance.say("Dojo");
});

您不能在内联脚本代码中
define
,内联脚本代码是一个类定义,放在类文件的最上面一行,这意味着define将文件名映射到其函数的返回值

这意味着,如果你有

dojo_toolkit /
  dojo/
  dijit/
  dojox/
  libs/
    myWidgets/
       foo.js
而foo.js读取

define(["dijit._Widget"], function(adijit) {
  return declare("libs.myWidgets.foo", [adijit], function() {
    say: function(msg) { console.log(msg); }
  });
});
然后注册一个新模块,名为
libs
/
myWidgets
/
foo
。您应该确保每个define中返回的declaredClass与文件层次结构匹配

也就是说,define对您不起作用的原因是上面的解释。它是内联的,没有用于猜测declaredClass名称的
src
。请将您的代码重写为define(“aTwitterLogger”),[“

define("aTwitterLogger", ["dojo/_base/declare", "dojo/dom"],function(declare, dom) {
  var Twitter = declare(null, {
      username:"defaultusername",
      say :function(msg)
      {
          console.log("Hello "+msg);
      }
  });
  var myInstance = new Twitter();
  myInstance.say("Dojo");
});

使用
require
而不是
define

<script>
require(["dojo/dom", "dojo/_base/declare"], function(dom, declare) {

    var Twitter = declare(null, {

        username: "defaultusername",

        say :function(msg) {
            console.log("Hello "+msg);
        }
    });

    var myInstance = new Twitter();
    myInstance.say("Dojo");
});
</script>

require([“dojo/dom”,“dojo/_base/declare”],函数(dom,declare){
var Twitter=declare(null{
用户名:“默认用户名”,
say:函数(msg){
log(“Hello”+msg);
}
});
var myInstance=newtwitter();
myInstance.say(“Dojo”);
});

控制台
可以工作,但是在
声明
中的回调函数中的代码在
要求
它之前不会被执行。

使用
要求
而不是
定义

<script>
require(["dojo/dom", "dojo/_base/declare"], function(dom, declare) {

    var Twitter = declare(null, {

        username: "defaultusername",

        say :function(msg) {
            console.log("Hello "+msg);
        }
    });

    var myInstance = new Twitter();
    myInstance.say("Dojo");
});
</script>

require([“dojo/dom”,“dojo/_base/declare”],函数(dom,declare){
var Twitter=declare(null{
用户名:“默认用户名”,
say:函数(msg){
log(“Hello”+msg);
}
});
var myInstance=newtwitter();
myInstance.say(“Dojo”);
});

<代码>控制台< /COD>工作,但代码中的回调函数在<代码>声明/代码>之前没有执行,直到<代码>要求< /Calp>它。< /P>我使用Firefox,但我不能打印输出,即使在ChalMe中。考虑这个小提琴我使用Firefox,但我不能打印输出,即使在ChalMe。考虑这个小提琴。