在下面的小提琴中 我希望 gokul 列表项位于顶部。
尽可能不修改DOM
<div id="test">
<li>gokul</li>
</div>
<script id="someTemplate" type="text/html">
< li data - bind = "text: name" > < span class = "remove"
data - bind = "text :name" > Remove from < /span></li >
</script>
var data = [{
name: "one"
}, {
name: "two"
}];
ko.applyBindingsToNode(document.getElementById("test"), {
template: {
name: 'someTemplate',
foreach: data
}
});
答案 0 :(得分:1)
这在Knockout下是不可能的,更糟糕的是你链接的JSFiddle使用的是Knockout 2.0.0。在以后的版本中,使用模板时绑定的节点的所有内容都将被清除 - 您将丢失&#34; gokul&#34;元素绑定时。
您需要使用在现有LI之后插入的虚拟模板/ foreach绑定。如果您无法修改正在传递的HTML,则可以动态完成此操作。
使用现有的HTML ...
var data = [ { name: "one" }, { name: "two" } ];
var element = document.getElementById("test");
var startForEach = document.createComment("ko template: {name: 'someTemplate', foreach: $data }");
var endForEach = document.createComment("/ko");
element.appendChild(startForEach);
element.appendChild(endForEach);
ko.applyBindings(data, document.getElementById("test"));