在HTML中调用Dojo函数

时间:2013-11-29 09:14:10

标签: javascript dojo

我的HTML:

<html>
     <head>
          <script src="dojo/dojo.js"></script>
          <script src="app/my.js"></script>
          <script>
                handleResult(<%server response data%>);
          </script>
     </head>
     <body>
          <div id="data"></div>
     </body>
</html>

我的js:

require(["dojo/_base/Array"],function(Array){
     handleResult = function(data){
         Array.forEach(data,function(item,index){
               //Process the data
         });
     }
});

当页面加载调用handleResult时,我收到错误:

Uncaught ReferenceError: test is not defined 

但我可以在firebug中获得此功能 window.handleResult 请帮助我。谢谢。

2 个答案:

答案 0 :(得分:1)

请不要使用onclick。

require(["dojo/on", "dojo/dom"],function(dom) {
     var button = dom.byId("demo"));
     on(button, "click", function(evnt) {
         console.log(evnt);
     })
});

答案 1 :(得分:0)

require函数是异步的。您无法在require回调中定义全局变量,然后尝试立即访问它。你也应该永远不要定义全局变量,这是AMD的基本原则之一。您的应用程序架构是错误的,永远不会工作。一旦应用程序加载到客户端,您需要使用AJAX调用来请求“服务器响应数据”,而不是尝试做您正在做的事情。