我有以下模板:
<script type="text/html" id="testTemplate">
<div class="itemName">Hello World</div>
<div class="itemDescription">This is a template that pops up</div>
</script>
我在这样的onClick事件中调用它:
$("<div/>", {
class: "itemView",
id: name,
"data-bind": "template: { name: 'testTemplate' }"
}).appendTo("body").draggable();
当我点击按钮查看该项目时,div会弹出,但它是空的。 HTML只是一个空的DIV:
<div class="itemView" id="Item1" data-bind="template: { name: 'testTemplate' } "></div>
我错过了什么?
更新我已经大大简化了这个问题
答案 0 :(得分:2)
我认为你需要再次调用ko.applyBindings()。但是Knockout中的常用方法是将div放在HTML中并使用visible绑定来控制div是否呈现。
答案 1 :(得分:0)
就个人而言,这并不是我对这种功能的看法。
我会在页面上显示div
但隐藏。
CSS
.itemView{ display: none; }
.show{ display: block; }
HTML
<div class="itemView" id="Item1" data-bind="with: myObject, css: { 'show': (myObject() !== null) }">
<div class="itemName">Hello World</div>
<div class="itemDescription">This is a template that pops up</div>
</div>
然后,当您举起click事件时,使用所选对象填充myObject
对象。淘汰赛将照顾一切。