我正在构建一个 knockout\jQuery 插件,它在调用时创建它自己的 UI,如下所示:
<input type="text" name="filter" id="filter" />
// renders ui
$("#filter").myPlugin();
通常的 jQuery 东西。但是,作为行为的一部分,我希望使用淘汰模板。虽然敲除似乎只识别第一次加载时页面中的模板。
这是一个显示问题的简洁示例:
<div id="container">
<div data-bind="template: { name: 'fieldsTemplate', foreach: FilterRows() }">
</div>
</div>
和js:
var fieldstemplate = $('<script>', { type: "text/html", id:"fieldsTemplate" });
var row = $('<ol>').html("<li>row</li>").appendTo(fieldstemplate);
fieldstemplate.insertAfter($("#container"));
var model = { FilterRows: ko.observable(["row"]) };
ko.applyBindings(model);
这会产生以下错误:
Uncaught TypeError: Cannot read property 'length' of null knockout-2.2.1.js:8
我还在这里创建了一个问题的 JS 小提琴:http: //jsfiddle.net/roysvork/EcFRc/
基本上我想知道我是否需要在这里采取另一种方法,或者是否有一种方法可以“解析” dom 以刷新模板的淘汰赛知识?
提前致谢!