Estoy usando la función de plantilla JQuery para representar la plantilla en la página html. He cargado las bibliotecas usando
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.4.4.js"></script> <script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.js"></script>Ahora, al pulsar un botón, llamo a la función displayProducts() y uso ajax llamando al servicio Java backend para obtener datos en formato JSON. responseJson son los datos que obtengo del backend.
El nombre de mi archivo de plantilla es productList.html. Y en caso de éxito, estoy llamando a la función tmpl de jquery. Pero está mostrando el siguiente error.
TypeError no detectado: $.tmpl no es una función
Amablemente sugiera lo que está mal en mi código.
function displayProducts() { $.ajax({ url : 'DisplayProducts', data : { searchKey : $('#searchText').val() }, success : function(responseJson) { console.log(JSON.stringify(responseJson)); $.get('template/productList.html', function(htmlTemplate) { $.tmpl(htmlTemplate, responseJson).appendTo('#container2'); }); } }); }EDITADO:
cuando estoy usando
var blogPosts = [ { postTitle: "How to fix a sink plunger in 5 minutes", postEntry: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna.", categories: ["HowTo", "Sinks", "Plumbing"] }, { postTitle: "How to remove a broken lightbulb", postEntry: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna.", categories: ["HowTo", "Lightbulbs", "Electricity"] }, { postTitle: "New associate website", postEntry: "Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Maecenas porttitor congue massa. Fusce posuere, magna sed pulvinar ultricies, purus lectus malesuada libero, sit amet commodo magna eros quis urna." } ]; $.get('template/sample.html', function(template) { $.tmpl(template, blogPosts).appendTo('#container3'); });dentro de la etiqueta <script>. Está funcionando bien. Pero cuando estoy usando la forma en que publiqué anteriormente, muestra el error.
Solucioné este error en mi proyecto, acabo de agregar este enlace al recurso jQuery:
<script type="text/javascript" src="http://ajax.aspnetcdn.com/ajax/jquery.templates/beta1/jquery.tmpl.min.js"></script>solo verifique que se debe agregar la referencia 'jquery.tmpl.min.js', aquí el archivo de enlace. https://github.com/BorisMoore/jquery-tmpl
No hubo ningún problema con el número de versión en mi código. Faltaba un elemento en la plantilla html. Es por eso que estaba recibiendo el error. Arreglado ahora.