0

我在哪里调用用于以编程方式创建 Dojo 组件的函数?

 function wlCommonInit(){

        var busy = new WL.BusyIndicator("content", { text: "Caricamento ..."});
        busy.show(); // Show busy indicator
        require([ "dojo/core-web-layer", "dojo/mobile-ui-layer",
                "dojo/mobile-compat-layer" ], dojoInit);

        busy.hide();
    }   

    var codici_clienti_data,ragione_sociale_data,listini_cliente_data,listini_cliente_completi,ordini_cliente_data,ordine_cliente_dettaglio,ordine_cliente_dettaglio_articolo;


    function creaOggettiDojo(){
        //creo edgeToEdge List per lista ordini clienti
        require([
                 "dojo/ready",
                 "dojo/store/Memory",
                 "dojox/mobile/EdgeToEdgeStoreList",
                 "dojox/mobile",
                 "dojox/mobile/parser"
             ], function(ready, Memory, EdgeToEdgeStoreList){
                 dojo.ready(function(){
                     var storeData = [
                         { "label": "Wi-Fi", "icon": "images/i-icon-3.png", "rightText": "Off", "moveTo": "bar" },
                         { "label": "VPN", "icon": "images/i-icon-4.png", "rightText": "VPN", "moveTo": "bar" }
                     ];
                     var sampleStore = new Memory({data:storeData, idProperty:"label"});
                     var storeOrdiniClienti = new EdgeToEdgeStoreList({store:sampleStore}, "storeOrdiniClienti");
                     storeOrdiniClienti.startup();
                 });
             });
        //fine lista ordini clienti
    }

    function dojoInit() {
        require([ "dojo", "dojo/parser", "dojox/mobile", "dojox/mobile/compat", "dojox/mobile/deviceTheme",
                  "dojox/mobile/ScrollableView",
                  "dojox/mobile/ScreenSizeAware",
                  "dojox/mobile/FixedSplitter",
                  "dojox/mobile/Container",
                  "dojox/mobile/Heading",
                  "dojox/mobile/EdgeToEdgeList",
                  "dojox/mobile/ListItem",
                  "dojox/mobile/RoundRect",
                  "dojox/mobile/TabBar",
                  "dojox/mobile/TabBarButton",
                  "dojox/mobile/Button",
                  "dijit/form/DataList",
                  "dojox/mobile/ComboBox",
                  "dojox/mobile/EdgeToEdgeStoreList",
                  "dojo/store/Memory",
                  "dojox/mobile/EdgeToEdgeDataList",
                  "dojo/data/ItemFileReadStore",  "dojo/data/ItemFileWriteStore" 
                  ],
                function(dojo) {
                    dojo.ready(function() {
                    });
                });


    }

我试图在代码的各个部分调用函数 creaOggettiDojo() 但没有渲染组件。怎么了?

4

1 回答 1

3

它应该在 dojo.ready 内部调用。

function dojoInit() {
require([ "dojo", "dojo/parser", "dojox/mobile", "dojox/mobile/compat", "dojox/mobile/deviceTheme", "dojox/mobile/ScrollableView" ],
        function(dojo) {
            dojo.ready(function() {

                creaOggettiDojo();
            });
        });
 }

删除 creaOggettiDojo 文件中的第二个 dojo.ready 。

在您的项目中还有一个名为 build-dojo.xml 的文件。在该文件中添加

    <include name="dojox/mobile/parser.js" />

到模式集标签。

还要确保您的 html 文件有一个用于列表的容器。前任<ul id="storeOrdiniClienti"></ul>

于 2013-06-25T16:55:19.343 回答