2012-07-19 64 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() { 

    ... 

    }); 
});