Un par de cosas que deberían ayudar a aclarar esto:
- Si hace referencia a jquery.tmpl.js antes Knockout.js, entonces KO fijará el jQueryTmplTemplateEngine como predeterminado.
- jQueryTmplTemplateEngine no admite plantillas anónimas. Esto significa que no puede usar los enlaces de control-flujo como
foreach
, if
, ifnot
y with
dentro de él. Todavía puede usar el enlace de la plantilla (incluidas las plantillas anidadas).
- Puede controlar el motor de plantillas predeterminado llamando al
ko.setTemplateEngine()
. Pasaría una instancia del motor que desea usar como ko.setTemplateEngine(new ko.nativeTemplateEngine)
- También puede pasar el motor de plantilla al enlace de plantilla en el parámetro
templateEngine
.
Por lo tanto, para su caso, es probable que desee quitar la referencia a jquery.tmpl.js, por lo que el motor de plantillas nativa está siendo utilizado por defecto. El motor de plantillas nativas admite plantillas anidadas (anónimas o nombradas).
muestra rápida mostrando una plantilla llamada con plantillas anónimos dentro de ella usando el motor de plantillas orígenes: http://jsfiddle.net/rniemeyer/GXFYB/
1 - mucho mejor respuesta que la mía! Sin embargo, es justo decir que existen limitaciones/problemas de compatibilidad con versiones anteriores con el nuevo motor de plantilla knockout. Por ejemplo, su ejemplo de arrastrar y soltar (http://www.knockmeout.net/2011/05/dragging-dropping-and-sorting-with.html) funcionará con el nuevo motor ya que depende de pasar los parámetros en la plantilla enlace de datos? –
Sí, hay algunos cambios que serían necesarios. La función de arrastrar y soltar de la publicación utiliza 'tmplItem' que es un concepto de plantillas jQuery, pero se puede reemplazar fácilmente. También usa 'templateOptions', que no es soporte actual en plantillas nativas. Examinaré la creación de una muestra actualizada utilizando la nueva sintaxis y veré si puedo encontrar formas de limpiarla aún más. –
Es probable que publique esto o agregue una nota a la publicación del blog, pero aquí están los dos ejemplos en 1.3: http://jsfiddle.net/rniemeyer/JEe2x/ y http://jsfiddle.net/rniemeyer/HzNuS/ . Los limpié un poco y envolví el enlace de la plantilla para hacerlo lo más simple posible para agregar el enlace. –