template que jade handlebars engine javascript templating-engine

que - ¿Algún avance en “Micro-Plantillas de JavaScript” de John Resig?



template engine que es (7)

Definitivamente, puede comprar el pdf en línea cuando salga como lo indica @James, independientemente de su país de residencia.

¿Existe una versión más estable / avanzada de este motor de micro-plantillas de John Resig?

Consulte el blog de Rick Stahl (en un grupo de motores de plantillas del lado del cliente) donde resuelve un problema con comillas simples en el motor de micro-plantillas de Resig. Esa es la única mejora a la fuente que he visto.

Así que he visto esta publicación en JavaScript Micro-Templating por John Resig y necesito un motor de micro-plantillas como este.

Pero dijo en el post que mantendrá una versión más refinada en su libro de secretos del ninja de JavaScript y también menciona que le gustaría ver que evolucione.

Así que me pregunto, ¿existe una versión más estable / avanzada de este motor de micro-plantillas de John Resig? Si es así, ¿cómo puedo obtenerlo? Ese libro de JavaScript no está disponible en mi país.



Este es el guión de John Resig (ligeramente modificado), es de la web de Rick Strahl ( http://weblog.west-wind.com/posts/2008/Oct/13/Client-Templating-with-jQuery )

var _tmplCache = {} this.tmpl= function(str, data) { /// <summary> /// Client side template parser that uses &lt;#= #&gt; and &lt;# code #&gt; expressions. /// and # # code blocks for template expansion. /// NOTE: chokes on single quotes in the document in some situations /// use &amp;rsquo; for literals in text and avoid any single quote /// attribute delimiters. /// </summary> /// <param name="str" type="string">The text of the template to expand</param> /// <param name="data" type="var"> /// Any data that is to be merged. Pass an object and /// that object''s properties are visible as variables. /// </param> /// <returns type="string" /> var err = ""; try { var func = _tmplCache[str]; if (!func) { var strFunc = "var p=[],print=function(){p.push.apply(p,arguments);};" + "with(obj){p.push(''" + // str // .replace(/[/r/t/n]/g, " ") // .split("<#").join("/t") // .replace(/((^|#>)[^/t]*)''/g, "$1/r") // .replace(//t=(.*?)#>/g, "'',$1,''") // .split("/t").join("'');") // .split("#>").join("p.push(''") // .split("/r").join("//'") + "'');}return p.join('''');"; str.replace(/[/r/t/n]/g, " ") .replace(/''(?=[^#]*#>)/g, "/t") .split("''").join("//'") .split("/t").join("''") .replace(/<#=(.+?)#>/g, "'',$1,''") .split("<#").join("'');") .split("#>").join("p.push(''") + "'');}return p.join('''');"; //alert(strFunc); func = new Function("obj", strFunc); _tmplCache[str] = func; } return func(data); } catch (e) { err = e.message; } return "< # ERROR: " + err.htmlEncode() + " # >"; }

Se puede usar así: tmpl ($ (''myHtmlTempl''). Html (), data);

Lo probé y funciona con "comillas simples" (ese fue mi problema principal hasta que encontré este). Esta versión está lista para trabajar con etiquetas <# #>.




También vea jQote2 . Citaré desde el propio sitio:

jQote (pronunciado como Chakotey de Star Trek) es básicamente una reescritura de la impresionante utilidad de micro-plantillas de JavaScript de John Resig. Tomé su código y lo porté a jQuery, revisé la parte de análisis / conversión y extendí su funcionalidad para minimizar los esfuerzos de codificación de todos.