dojo 五 配置dojoconfig


官方教程: Configuring Dojo with dojoConfig
例子:
<-- set Dojo configuration, load Dojo -->
<script>
     dojoConfig= {
        has: {
            "dojo-firebug": true
        },
        parseOnLoad: false,
        foo: "bar",
        async: true,
        aliases:[
            ["ready", "dojo/domReady"],
            ["registry","dijit/registry"],
            ["dialog","dijit/Dialog"],
            ["parser","dojo/parser"]
        ],
        packages: [{
            name: "js",
            location: "/js"
        }],
       
locale: location.search.match(/locale=([\w\-]+)/) ? RegExp.$1 : "en-us"
    };
</script>
<script src="http://blog.163.com/mqsy_yj/blog/http://ajax.googleapis.com/ajax/libs/dojo/1.7.1/dojo/dojo.js"> </script>
 
<script>
// Require the registry, parser, Dialog, and wait for domReady
require([ "registry" , "parser" , "dialog" , "ready!" ], function (registry, parser) {
     // Explicitly parse the page
    dojo. parser.parse();
     // Find the dialog
     var dialog = registry.byId( "dialog" );
     // Set the content equal to what dojo.config is
     dialog.set( "content" , "<pre>" + dojo.toJson(dojo.config, true ) + "</pre>" );
     // Show the dialog
     dialog.show();
});
</script>
 
<!-- and later in the page -->
< div id = "dialog" data-dojo-type = "dijit.Dialog" data-dojo-props = "title: 'dojoConfig / dojo.config'" ></ div >

dojoConfig用於設置一些在Dojo運行時的選項和默認的行為方式。
在上面的代碼中,首先定義dojoConfig設置一些屬性,然后加載dojo.js,如果這個過程反過來,那dojoConfig的配置則無效。
         data-dojo-config="has:{'dojo-firebug': true}, parseOnLoad: false, foo: 'bar', async: true" >
</script>
這是另一種寫法,等同於前一種。前一種是寫在一個單獨的script塊中,后一種是作為script標簽的一個屬性。個人認為前一種比較好,如果需要配置的內容比較多時,前一種會更清楚直觀,容易理解。
下面說一些配置項。
has()用來設置一些Dojo支持的系統特性。
has: {
    "dojo-firebug" : true ,//加載Dojo版的Firebug調試環境,如果瀏覽器沒有自帶調試工具,可以用這個
    "dojo-debug-messages" : true//顯示調試信息,針對於一些廢棄的或測試中的功能特性在運行時的信息
}
另外還有debugContainerId,用於在頁面顯示debug控制台界面的地方;popup,在彈出窗口中顯示debug控制台,而不是在當前頁面中。


Loader Configuration
加載時一些常用選項
packages: [{
     name: "myapp" ,
     location: "/js/myapp"
}]
//提供包名及其路徑

aliases: [
     // [alias name, true name]
     [ "cookie" , "dojo/cookie" ]
]
//設置別名

async:true/false/
legacyAsync
//是否異步加載

parseOnLoad:true/false
//是否在DOM和所有初始化完成后由dojo.parser解析頁面


本地化與國際化
locale: location.search.match(/locale=([\w\-]+)/) ? RegExp.$1 : "en-us"

上面代碼會在地址中查找參數locale=xx,如http://dojotoolkit.org/documentation/tutorials/1.7/dojo_config/demo/localeConfig.html?locale=zh,這里參數locale=zh

require([ "dojo/date/locale" , "dijit/Dialog" , "dojo/i18n" , "dojo/domReady!" ] , function (locale, Dialog) {
            var now = new Date();
            var dialog = new Dialog({
                id: "dialog",
                title: "Today: " + locale.format(now,{
                    formatLength:"full",
                    selector:"date"
                })
            }).placeAt(dojo.body());
            dialog.startup();
            dialog.set("content","<pre>" + dojo.toJson(dojo.config,true) + "</pre>");
            dialog.show();
        });
上面代碼中將日期格式進行本地化放在Dialog的標題欄中。如果沒有找到locale=xx,則默認為en-us。
 
如果同鞋覺得有用,勞煩點點下面的廣告支持我一下,不勝感激。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM