I have searched for a bit on a basic example on using the John Resig JavaScript Micro-Templating engine on Google but came out dry.
I decided to bring it to base guys. Can anyone help with a simple example on using this engine? I have never used a client side template engine before.
Update: This is the complete HTML document. Thanks to Will.
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>John Resig JavaScript Micro-Templating engine</title>
<script src="jquery-1.3.2.js" type="text/javascript"></script>
<script src="MicroTemplates.js" type="text/javascript"></script>
<script type="text/javascript">
//Data
var data = { fname: "fred" };
function onloadFunction() {
var s = $("#biodata").html();
var s1 = tmpl(s, data);
$("#target").html(s1);
}
</script>
<script id="biodata" type="text/html">
<div><%= fname %></div>
</script>
</head>
<body onload="onloadFunction();">
<div id="target">
</div>
</body>
</html>
A template engine enables you to use static template files in your application. At runtime, the template engine replaces variables in a template file with actual values, and transforms the template into an HTML file sent to the client. This approach makes it easier to design an HTML page.
Pug. Pug , formerly known as Jade, is one of the most used template engines in Node. It provides an indentation-based syntax for adding content to a page.
JavaScript templating refers to the client side data binding method implemented with the JavaScript language. This approach became popular thanks to JavaScript's increased use, its increase in client processing capabilities, and the trend to outsource computations to the client's web browser.
The link you provided has an example immediately after the engine code. Read from the 2nd paragraph down.
CB, using your example, here is my take on the engine, which outputs the value of fname between div tags. To carry out the generation you would do something like:
var data = { fname : "fred" };
var generatedText = tmpl("biodata", data);
Then you'd have to output it, eg.
document.write(generatedText);
Or (assuming a div exists in the page with the id of 'elemId')
var elem = document.getElementById("elemId");
elem.innerHTML = generatedText;
All the above is untested, but hopefully accurate. Hope it helps!
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With