¿La encuadernación de Knockout con la templación de jQuery no está mostrando datos?
-
21-12-2019 - |
Pregunta
Soy muy nuevo para eliminar y como un ejercicio de aprendizaje, estoy tratando de hacer un vinculante de Knockout con la plantilla de jQuery (mis disculpas si estoy referir términos erróneos)
Por favor, consulte este enlace: http://jsfiddle.net/yawer/7xvgj/1/
Aquí está mi código:
js:
var data = [
{ Id: 1, Name: "Jim" },
{ Id: 2, Name: "Bilal" },
{ Id: 3, Name: "Hussain" },
{ Id: 4, Name: "Hassan" }
];
var viewModel = function () {
var self = this;
//data
self.tags = ko.observableArray(data);
self.tagToAdd = ko.observable();
//behaviour
self.addTag = function () {
self.tags.push({ Name: self.tagToAdd() });
};
};
$(function () {
var vm = new viewModel();
ko.applyBindings(vm);
});
html:
<div data-bind="template: 'tagsTemp'">
</div>
<script id="tagsTemp" type="text/html">
{{each tags}}
<span>${Name}</span>
{{/each}}
</script>
Estoy esperando la lista de nombres, pero en lugar de nombres, estoy obteniendo código:
{{each tags}} ${Name} {{/each}}
Guíame amablemente donde estoy mal en el código.Entiendo que la vinculación de Knockout se puede hacer de diferentes maneras, pero debo hacerlo con la plantilla de jQuery.Amablemente ayuda
Solución
Primero: no debe usar el soporte JQuery.tmpl porque esa biblioteca ya no se mantiene.El motor de plantación nativo de KO es suficiente para el 95% de los casos de uso.
segundo: Aunque KO admite JQUERY.TMPL fuera de la caja, aún necesita hacer referencia a la jquery.tmpl biblioteca en sí.
del Documentación :
De forma predeterminada, Knockout viene con soporte para jquery.tmpl.Para usarlo, Debe hacer referencia a las siguientes bibliotecas, en este orden:
<!-- First jQuery --> <script src="jquery-1.7.1.min.js"></script> <!-- Then jQuery.tmpl --> <script src="jquery.tmpl.js"></script> <!-- Then Knockout --> <script src="knockout-x.y.z.js"></script>
Aquí está su jsfiddle con la referencia faltante agregada.