Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@gustavopaes
Last active December 22, 2015 06:19
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gustavopaes/6430497 to your computer and use it in GitHub Desktop.
Save gustavopaes/6430497 to your computer and use it in GitHub Desktop.
Simples Lib de template para substituir apenas variáveis.Útil para montar URL de Webservices com parâmetros variáveis.

Formatos aceitos

{{= variavel }}
{{= variavel.atributo }}
{{= variavel["meu-atributo"] }}
{{= variavel.toLowerCase() }}
{{= escape(variavel) }}

Formatos não aceitos

{{= variavel.meu-atributo }} usar no lugar {{= variavel["meu-atributo"] }}

/**
* Simples Lib de template para substituir apenas variáveis. Útil para montar URL
* de Webservices com parâmetros variáveis.
*
* @param {String} template
* @param {Json} obj Objetos que serão adicionados no template
* @returns {String}
*/
function maker(template, obj) {
var attr;
var to_match = new RegExp('\{\{=\\W*([^}]+)\}\}', 'g');
template = template.replace(to_match, function(match, code) {
code = code.replace(/(\w+\-\w+)/, function(x, attr) {
if( obj.hasOwnProperty(attr) === true ) {
return "data['"+attr+"']";
}
return attr;
});
return new Function("data", "code", "with(data){return eval(code);}")(obj, code);
});
return template;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment