0.1.4 • Published 9 years ago

dotpl v0.1.4

Weekly downloads
16
License
-
Repository
github
Last release
9 years ago

Dotpl-JS

Dotpl-JS is a pure javascript template engine. There are three simple API only.

  • Apply the template using the json data,then return the view:dotpl.applyTpl(tpl, data, renderer)

  • Apply the remote template,return the view from the callback function:dotpl.applyRTpl(url, data, cb, renderer)

  • Locate the data using the string "key1.key2.key2":dotpl.diving(key,data)

Samples

  • General
alert(dotpl.applyTpl("hello ${val}", {val:"world"})); 
alert(dotpl.applyTpl("hello ${val} ${val2}", {val:"world",val1:"wide-web",val2:"good"}
	, function(k,v,kv){ 
		if(k=='val') return kv['val']+"-"+kv['val1']; 
	}
)); 
alert(dotpl.applyTpl("hello ${data.val}", {data:{val:"freedom"}})); 
alert(dotpl.applyTpl("hello ${data.val} nothing ${none}", {data:{val:"freedom"}})); 
alert(dotpl.applyTpl("hello ${data.data1.val}", {data:{data1:{val:"evolution"}}})); 
alert(dotpl.applyTpl("hello ${val},i ${action} you", {val:"town", action:'love'}));
  • Template using IF logic:
alert(dotpl.applyTpl(
	"hello ${val}, <tpl if=\"'${action}'=='love'\">i ${action} you</tpl>"
	, {val:"town", action:'love'})); 

alert(dotpl.applyTpl(
	"hello ${val},<tpl if=\"'${action}'=='love'\""
	+"emptyText=\"none\">i ${action} you</tpl>"
	, {val:"town", action:'like'}));
  • Template using FOR logic:
alert(dotpl.applyTpl("list:\n<tpl for=\".\">${__offset} hello ${key} ${val}\n</tpl>"
	, [{key:"world", val:'like'},{key:"town", val:'freedom'}])); 

alert(dotpl.applyTpl("list:\n<tpl for=\"data\">${__offset} hello ${key} ${val}\n</tpl>"
	, {data:[{key:"world", val:'like'},{key:"town", val:'freedom'}]})); 

alert(dotpl.applyTpl("list:\n<tpl for=\"data\">${__offset} hello ${__val} \n</tpl>"
	, {data:[1,2,4]}));

alert(dotpl.applyTpl("list:\n<tpl for=\"data\">${__offset} hello ${__val} \n</tpl>"
	, {data:["s1","s2","s3"]}));
  • Template using mutil FOR logic:
alert(dotpl.applyTpl("list:\n<tpl for=\"data\">${__offset} hello ${key} ${val}\n</tpl>"
	+ "list2:\n<tpl for=\"data\" emptyText=\"none\">${__offset} 1024 ${key} ${val}\n</tpl>"
	,  {data:[{key:"world", val:'like'},{key:"town", val:'freedom'}]}));

alert(dotpl.applyTpl("<tpl for=\".\">list${__offset} \n <ul><tpl0 for=\"data\"><li>"
	+ "${__offset} \n ${key} ${val}</li></tpl0></ul></tpl>"
	,  [{data:[{key:"world", val:'like'},{key:"town", val:'freedom'}]}
	,{data:[{key:"world1", val:'like1'},{key:"town1", val:'freedom1'}]}]));
  • Apply remote template:
dotpl.applyRTpl("/display.tpl",{key:'hellow world'},function(view){alert(view);});
  • Diving API:
alert(dotpl.diving("data", {data:{data1:{val:"evolution"}}})); 
alert(dotpl.diving("data.data1", {data:{data1:{val:"evolution"}}})); 
alert(dotpl.diving("data.data1.val", {data:{data1:{val:"evolution"}}}));