敲除模板绑定

avg*_*hov 5 knockout.js knockout-templating

我有一个ul元素,通过模板绑定填充.

<script type="text/html" id="someTemplate">
<li>
   <span data-bind="text: someText">
</li>
</script>

<ul data-bind="template: {foreach: someElemets, name: 'someTemplate'}">
</ul>
Run Code Online (Sandbox Code Playgroud)

但我希望第一个 li-tag不是来自模板的li-tag而是另一个带有按钮的li-tag,它不会连接到someElemets数组.如果我这样做的话

<ul data-bind="template: {foreach: someElemets, name: 'someTemplate'}">
    <li><button data-bind=click: doSomething">Click me</button></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

然后li-tag with button将是渲染后的最后一个.解决这个问题的最佳方法是什么?

小智 12

您可以使用无容器控制流语法,使用注释标记进行数据绑定.不需要模板.更多信息

<ul>     
    <li><button data-bind=click: doSomething">Click me</button></li>
    <!-- ko foreach: someElemets-->         
    <li>
        <span data-bind="text: someText"></span>
    </li>    
    <!-- /ko -->
</ul> 
Run Code Online (Sandbox Code Playgroud)


Mak*_*nko 7

以下将这样做:

<!-- ko template: { name: 'template-name', data: vm } --> <!-- /ko -->
Run Code Online (Sandbox Code Playgroud)