如何获取模板 html 文本

How can I get template html text

我知道knockout有方法ko.renderTemplate()https://www.strathweb.com/2012/08/knockout-js-pro-tips-working-with-templates/

所以我有下一个代码:

var templateHtmlText = ko.renderTemplate('packageView', package[0])

但是 returns "<!--[ko_memo:5c90e0726c7e506b]-->"

我如何准备好 html 变量中应用了绑定的代码?

您需要提供要绑定到的 knockout 元素(本例中为 elem)。 RenderTemplate 然后将数据(本例中的 obs)绑定到该元素。如果要将结果存储在变量中,则抓取元素 innerHTML:

var obs = ko.observable({demo:'demo text'});
var elem = document.createElement('div');

ko.renderTemplate('template', obs, null, elem);
console.log(elem.innerHTML);
<script src="https://cdnjs.cloudflare.com/ajax/libs/knockout/3.4.2/knockout-min.js"></script>
<script type="text/html" id="template">
  <span data-bind="text: demo"></span>
</script>