dojo 五 配置dojoconfig
官方教程:Configuring Dojo with dojoConfig
例子:
//提供包名及其路径
本地化与国际化
上面代码中将日期格式进行本地化放在Dialog的标题栏中。如果没有找到locale=xx,则默认为en-us。
例子:
<-- 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();
});
如果同鞋觉得有用,劳烦点点下面的广告支持我一下,不胜感激。