Dojo micro-template: dojo/string Module

Source: Internet
Author: User
Tags dot net

Email: longsu2010 at yeah dot net
Anyone who knows John Resig's JavaScript Micro-Templating knows its simplicity and the amount of code to be implemented is small.
In the dojo/string module, dojo provides a very concise template replacement function substitute.
Here is an example.

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 );
}); The output result is:
File 'foo.html 'is not found in directory'/temp '.
We can see that the first parameter of substitute is the template string, and the second parameter is the replaced data.

Usage 2:
Var html = "File '$ {0}' is not found in directory '$ {1 }'."
Console. log (string. substitute (html, ["foo.html", "/temp"]);
Output result:
File 'foo.html 'is not found in directory'/temp '.
It can be seen that the second parameter can be an array, which must be represented in the form of a lower mark in the template.

The substitute method signature is: substitute (/* String */template,/* Object | Array */map,/* Function? */Transform,/* Object? */ThisObject)
Usage 3:

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 );
}); The output result is:
Fmt: foo.html
Transform: -foo.html-
Transform:/temp info. dir

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

 


Note:
1. Use the fmt function to format the attribute $ {name: fmt} above.
2. The third parameter of substitute is a conversion function (Optional). This function is called every time you replace a template variable (the parameter is the template variable value and template variable name ), if this parameter is not available, use the transform function in the fourth parameter. If the fourth parameter does not contain transform, do not perform this operation.
3. The fourth parameter of substitute is an object (optional, global by default ). When the template engine encounters a $ {name: fmt} template variable, it searches for the fmt function in the object. If the third parameter is not provided and the object contains a function named transform, use this transform as the third parameter.


In addition to the substitute function, the dojo/string module also provides the following functions:
Reg (/* String */str,/* Integer */num): copy the String of the first parameter to the second parameter.
Pad (/* String */text,/* Integer */size,/* String? */Ch,/* Boolean? */End): Fill text with ch to the length of size. If end is true, it is filled after text; otherwise, it is filled before.
Trim: trim is the trim in the String prototype. If trim is not in the String prototype (not supported by the js engine), the dojo implementation function is the same as trim.

Related Article

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.