-1

这是我必须使用的一个小jsfiddle示例: //jsfiddle.net/SHjXg/3/

由于淘汰赛不允许我将 'with' 和 'if' 绑定绑定到单个元素,因此我目前使用 2 个嵌套 div 而不是一个来完成此操作。

<div class="item" data-bind="with:items.item1">
    <div data-bind="if:ready()">
        <!-- content here is different for each item and depends on item 
             properties which are not available before ready() is set to true. -->
    </div>
</div>

我可以以某种方式将绑定上下文与现有的“if”绑定一起传递,以使每个项目仅使用一个 div,还是应该为此创建一个自定义绑定?

4

3 回答 3

3

您可以使用如下语法:

<div class="item" data-bind="template: { data: items.item1, 'if': items.item1.ready }">

此语法与 的当前版本之间只有很小的区别,with因为它不会保留原始元素。

否则,您可以选择使用无容器绑定,例如:

<!-- ko if: ready -->content<!-- /ko -->

于 2013-07-29T14:23:40.100 回答
1

如果我对您的理解正确,您可以使用虚拟元素

<div class="item" data-bind="with:items.item1">
    <!-- if : ready() -->       
        <!-- content here is different for each item and depends on item 
             properties which are not available before ready() is set to true. -->
     <!-- /ko -->
</div>
于 2013-07-29T14:21:59.530 回答
1

您可以使用非常有用的淘汰评论。

http://knockoutjs.com/documentation/if-binding.html

<ul>
    <li>This item always appears</li>
    <!-- ko if: someExpressionGoesHere -->
        <li>I want to make this item present/absent dynamically</li>
    <!-- /ko -->
</ul>
于 2013-07-29T14:23:18.240 回答