`
v5browser
  • 浏览: 1142320 次
社区版块
存档分类
最新评论

dojo微模板dojo/string模块

 
阅读更多
Email:longsu2010 at yeah dot net
知道John Resig的JavaScript Micro-Templating的人都知道其简洁性以及实现代码量及少。
dojo在dojo/string模块中提供了一个非常简洁的模板替换函数substitute。
先来个例子
require(["dojo/string"], function(string){
	var html = "File '${name}' is not found in directory '${info.dir}'.";
	var s = string.substitute(html, { name: "foo.html", info: { dir: "/temp" } });
	console.log(s);
});
输出结果为:
File 'foo.html' is not found in directory '/temp'.
可以看出substitute的第一参数是模板字符串,第二参数是替换的数据。

用法二:
var html = "File '${0}' is not found in directory '${1}'."
console.log(string.substitute(html , ["foo.html","/temp"] ));
输出结果为:
File 'foo.html' is not found in directory '/temp'.
可以看出第二参数可以是一个数组,模板中必须用下标的形式来表示。

substitute的方法签名为:substitute(/*String*/ template, /*Object|Array*/map, /*Function?*/transform, /*Object?*/ thisObject)
用法三:
require(["dojo/string"], function(string){
	var fmts = {
		fmt : function(value){
			console.log("fmt : ", value);
			return "-" + value + "-";
		},
		transform : function(value, key){
			console.log("transform : ", value, key);
			return key + " : " + value;
		}
	}
	var html = "File '${name:fmt}' is not found in directory '${info.dir}'.";
	var s = string.substitute(html, { name: "foo.html", info: { dir: "/temp" } }, fmts.transform, fmts);
	console.log(s);
});
输出结果为:
fmt : foo.html
transform : -foo.html-
transform : /temp info.dir

File 'name : -foo.html-' is not found in directory 'info.dir : /temp'.


说明:
1、如上${name:fmt}为name这个属性要使用fmt函数来格式化。
2、substitute的第三参数为一个转换函数(可选),每替换一个模板变量的时候就会调用该函数(参数为模板变量值及模板变量名字),如果没有该参数则使用第四参数中的transform函数,如果第四参数中无transform则不执行此操作。
3、substitute的第四参数为一个对象(可选,默认为全局对象)。当模板引擎遇到${name:fmt}模板变量时会到该对象中查找fmt函数。如果没有提供第三参数,并且该对象中包含一个名为transform的函数,则用使用该transform作为第三参数。


dojo/string模块除了提供substitute函数外还提供了如下函数:
reg(/*String*/str, /*Integer*/num):将第一参数的字符串复制第二参数次。
pad(/*String*/text, /*Integer*/size, /*String?*/ch, /*Boolean?*/end):将text用ch填充到长度为size,end为true则在text后面填充,否则在前面填充。
trim:trim就是String原型中的trim,若String原型中没有trim(js引擎不支持)则dojo实现功能相同trim。
分享到:
评论

相关推荐

    dojo dojo实例 dojo例子 dojo资料 dojo项目 dojo实战 dojo模块 dojo编程

    dojo dojo实例 dojo例子 dojo资料 dojo项目 dojo实战 dojo模块 dojo编程

    dojo-0.3.1-ajax

    dojo-0.3.1-ajax

    DOJO 学习笔记 dojo

    dojo.lang.array & dojo.lang.func & dojo.string.extras) 13 六、 Dojo学习笔记(6. dojo.io.IO & dojo.io.BrowserIO) 18 七、 Dojo学习笔记(7. dojo.dom) 22 八、 Dojo学习笔记(8. dojo.event & dojo.event.topic ...

    dojo模块化实例

    dojo模块化实例,利用dojo.xd.js跨域调用js模块

    dojo,C#做的财务模块

    dojo,C#做的财务模块dojo,C#做的财务模块dojo,C#做的财务模块dojo,C#做的财务模块

    dojo精品中文教程(包一)

    dojo学习笔记(二) dojo.lang.array & dojo.lang.func & dojo.string.extras dojo学习笔记(六)- ContentPane dojo学习笔记(四) dojo的拖拽示例以及疑问! 介绍dojo事件 使用 Dojo 工具包和 JSON-RPC 构建...

    dojo精品中文教程(全)

    dojo学习笔记(二) dojo.lang.array & dojo.lang.func & dojo.string.extras dojo学习笔记(六)- ContentPane dojo学习笔记(四) dojo的拖拽示例以及疑问! 介绍dojo事件 使用 Dojo 工具包和 JSON-RPC 构建...

    dojo精品中文教程(包二)

    dojo学习笔记(二) dojo.lang.array & dojo.lang.func & dojo.string.extras dojo学习笔记(六)- ContentPane dojo学习笔记(四) dojo的拖拽示例以及疑问! 介绍dojo事件 使用 Dojo 工具包和 JSON-RPC 构建...

    dojo/js/css 压缩打包工具 - 桌面版

    该工具可按指定的方案合并、压缩dojo或符合dojo规范的js文件、压缩css文件。 使用方便,无需安装配置, 下载置入dojo源码下的任意目录即可一键完成...发布版: http://www.ecranesoft.com/aauto/dojo/dojoBuild-bin.rar

    DOJO中文手册【出自dojo中国】

    DOJO中文手册【出自dojo中国】 页数60+ 简单介绍: Dojo 是一个用javascript语言实现的开源DHTML工具包。它是在几个项目捐助基础上建立起来的(nWidgets, Burstlib, f(m)), 这也是为什么叫它a \"unified\" toolkit的...

    dojo文档 dojo文档 dojo文档

    dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档 dojo文档

    DOJO+C#做的B/S人事信息管理模块

    用DOJO 1.3.2 加 .NET 2.0(c#) 做的人事信息管理模块,用 ChartDirector(未破解) 做报表支持。

    精通Dojo by Dojo之父

    通过本书,读者将学会如何在开发中将自己的项目模块化,还将学到该JavaScript库在核心功能方面的一些增强。学习完本书后,读者不仅能熟悉Dojo框架的使用,还能了解Ajax框架的工作原理,最重要的是,还能随心所欲地...

    dojo js dojo js

    dojo js dojo js dojo js dojo js dojo js dojo js dojo js

    Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库

    dojo.js.核心jsDojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库Dojo.js核心dojo的javaScript类库

    javascript dojo

    学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源学习dojo的绝好资源...

    dojo精品中文教程(包三)

    dojo学习笔记(二) dojo.lang.array & dojo.lang.func & dojo.string.extras dojo学习笔记(六)- ContentPane dojo学习笔记(四) dojo的拖拽示例以及疑问! 介绍dojo事件 使用 Dojo 工具包和 JSON-RPC 构建...

    dojo中文文档-dojo手册

    dojo中文文档下载。dojo中文文档下载。

    精通Dojo PDF 扫描版 part1

    精通Dojo PDF 扫描版 part1/3 中文版,由Dojo作者完成,有参考价值

    grunt-dojo:在Grunt任务中构建Dojo

    咕unt道场在Grunt任务中构建Dojo...用法dojo: { dist : { options : { dojo : 'path/to/dojo.js' , // Path to dojo.js file in dojo source load : 'build' , // Optional: Utility to bootstrap (Default: 'build')

Global site tag (gtag.js) - Google Analytics