Tôi đã tạo một plugin knockoutjs sử dụng ko.renderTemplate trong phần "cập nhật" của trình xử lý ràng buộc của nó. Mã này tạo ra kết quả mong đợi nhưng cũng ném một lỗi "Không thể phân tích cú pháp".knockoutjs "Không thể phân tích cú pháp" trong plugin bằng cách sử dụng ko.renderTemplate
Tái tạo sự cố này có thể tìm thấy tại đây http://jsfiddle.net/rhoadsce/VSWK2/ trên jsfiddle.
Các javascript như sau:
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);
});
Các html cũng không kém phần đơn giản.
<div data-bind="plugin: plugin"></div>
<script id="pluginTemplate" type="text/html"><span data-bind="text: content"></span></script>
+1: code, fiddle, nỗ lực rõ ràng để thành công một mình và một vấn đề thú vị. Câu hỏi đầu tiên tuyệt vời, chào mừng bạn đến Stack Overflow – Tyrsius