0

我正在尝试使用 dojo 的新 AMD 功能完成简单的任务,但屏幕上没有错误,也没有显示结果......

我想重写 dojo 参考指南中提到的第一个程序示例 dijit.Tree:

<script type="text/javascript">
dojo.require("dojo.data.ItemFileReadStore");
dojo.require("dijit.Tree");

dojo.ready(function(){
  var store = new dojo.data.ItemFileReadStore({
      url: "{{dataUrl}}/dijit/tests/_data/countries.json"
  });

var treeModel = new dijit.tree.ForestStoreModel({
    store: store,
    query: {"type": "continent"},
    rootId: "root",
    rootLabel: "Continents",
    childrenAttrs: ["children"]
});

new dijit.Tree({
    model: treeModel
}, "treeOne");
});
</script>

到 AMD 版本:

<!DOCTYPE  HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
    <title></title>
    <link rel="stylesheet" href="js/dojo/dijit/themes/claro/claro.css" />
    <script src="js/dojo/dojo/dojo.js" data-dojo-config="async: true"></script>
    <script language="JavaScript">
    var param = new Array(null,["dojo/dom","dijit/tree","dojo/data/ItemFileReadStore","dijit/tree/ForestStoreModel","dojo/domReady!"]);
    require(param[1],function(dom,dtree,ifrs,fsm)
    {
        var store = new ifrs({url: "js/countries.json"});           
        var treeModel = new fsm({store: store,query: {"type": "continent"},rootId: "root",rootLabel: "Continents",childrenAttrs: ["children"]});

        new dtree({model:treeModel},"treeOne");
    });         
    </script>
</head>
<body class="claro">
<div id="treeOne">      
</div>
</body> 
</html>

Firebug 不会告诉我运行时错误,也不会告诉我缺少某些东西。页面只是保持空白。我做错了什么?!

4

1 回答 1

0

主要问题是如何构建参数数组并且只使用数组中的第一个值。

还有,dojo.ready不一样dojo/domReady!

require(["dojo/dom", "dijit/tree", "dojo/data/ItemFileReadStore", 
  "dijit/tree/ForestStoreModel", "dojo/ready"],
function(dom, dtree, ifrs, fsm, ready) {     
  ready(function() {

    ...

  });
});
于 2012-07-19T10:13:10.823 回答