2015-09-14 33 views
0

我正在使用dojo 1.9。 使用xhr.get加載包含dojo對象的html文件。 儘管html頁面顯示文本,但沒有顯示dojo對象。 Coad剪輯如下。dojo xhr加載html不顯示dojo對象

main.js

require(["dojo/_base/xhr", "dojo/dom"], function(xhr,dom){ 
       var url = require.toUrl("page1.html"); 
       xhr.get({ 
       url: url, 
       load: function(html){ 
        dom.byId("view2").innerHTML = html; 

        var currentView = dijit.registry.byId('view0'); 
        currentView.performTransition('#p1view0',1,"slide",null); 

        globalVar = null; 
       } 
      }); 
       }); 

page1.html

<div data-dojo-type="dojox.mobile.View" id="p1view0" data-dojo-props="selected:true"> 
    <p> 
     This is from Page 1 
    </p><br> 
    <ul data-dojo-type="dojox.mobile.IconMenu" id="menu2" 
     style="width: 274px; height: 210px; margin: 20px;" 
     data-dojo-props="cols: 1"> 
     <li data-dojo-type="dojox.mobile.IconMenuItem" 
      data-dojo-props="label: 'Go to Home Page',moveTo:'view0'"></li> 
    </ul> 
</div> 

的index.html

<!DOCTYPE HTML> 
<html> 
----- 
<body> 
----- 
<div data-dojo-type="dojox.mobile.ScrollableView" id="view0" data-dojo-props="selected:true"> 
</div> 
<div id="view2"> 
</div> 
<script src="js/main.js"></script> 
</body> 
</html> 

回答

0

你必須手動在插入新內容後,請調用dojo解析器。
見:http://dojotoolkit.org/reference-guide/1.10/dojo/parser.html

require(["dojo/_base/xhr", "dojo/dom", "dojo/parser"], function(xhr,dom, parser){ 
      var url = require.toUrl("page1.html"); 
      xhr.get({ 
      url: url, 
      load: function(html){ 
       dom.byId("view2").innerHTML = html; 

       var currentView = dijit.registry.byId('view0'); 
       currentView.performTransition('#p1view0',1,"slide",null); 

       globalVar = null; 

       paerser.parse(dom.byId("view2")); 
      } 
     }); 
}); 
+0

感謝@ben。按照建議添加parser.parse後,將顯示dojo對象。 –