Creé un complemento knockoutjs que finalmente utiliza ko.renderTemplate en la parte de "actualización" de su controlador de enlace. El código produce el resultado esperado pero también arroja un error "No se puede analizar enlaces".knockoutjs "No se pueden analizar enlaces" en el complemento utilizando ko.renderTemplate
Puede encontrar una reproducción de este problema aquí http://jsfiddle.net/rhoadsce/VSWK2/ en jsfiddle.
El javascript es el siguiente:
ko.plugin = function(configuration) {
var self = this;
self.content = configuration.content || '';
};
ko.bindingHandlers.plugin = {
update: function(element, valueAccessor, allBindingsAccessor) {
var viewModel = valueAccessor();
$(element).append('<div id="pluginContainer"></div>');
var $container = $(element).children('#pluginContainer');
ko.renderTemplate("pluginTemplate", viewModel, {}, $container, 'replaceNode');
}
};
$(function() {
var vm = (function() {
var plugin = new ko.plugin({ content: 'test content'});
return {
plugin: plugin
}
})();
ko.applyBindings(vm);
});
El html es igual de simple.
<div data-bind="plugin: plugin"></div>
<script id="pluginTemplate" type="text/html"><span data-bind="text: content"></span></script>
1: código, un violín, los intentos obvios para tener éxito en su propia, y una cuestión interesante. Excelente primera pregunta, bienvenido a Stack Overflow – Tyrsius