2012-07-19 17 views
0

我试图完成简单的任务与Dojo的新的AMD功能initiliaze,我没有得到没有被显示在结果屏幕上的错误....简单的dijit小部件失败,AMD编程

我想重写道场参考指南中提到的第一个纲领性例如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的不whow我一个运行时间错误,或者不告诉我有什么遗漏。该页面保持空白。我做错了什么?!

回答

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() { 

    ... 

    }); 
});