淘汰"if binding"不起作用



在Chrome调试时,我可以看到CoverPrices有9个元素。foreach循环实际上工作得很好,并且表看起来是正确的,第一个span正确地绑定到Item1。

但是,if绑定不起作用,两个图像都显示。然而,Item2中的所有元素都具有真值,因此只有第一个图像应该显示。

<!-- ko foreach: CoverPrices -->
    <tr>
        <td>
            <span data-bind="text: Item1"></span>
        </td>
        <!-- ko foreach: Item2 -->
        <td>
            <img src="~/Images/yes.png" alt="oui" data-bind="if: $data" /> 
            <img src="~/Images/no.png" alt="non" data-bind="ifnot: $data" /> 
        </td>
        <!-- /ko -->
    </tr>
    <!-- /ko -->

if-binding不影响整个元素,但其内容。因为img元素没有内容,所以绑定无关紧要。

这将工作,span作为容器元素:

<span data-bind="if: $data"><img src="~/Images/yes.png" alt="oui" /></span>
<span data-bind="ifnot: $data"><img src="~/Images/no.png" alt="non" /></span>

如果您不想要额外的元素,也可以使用无容器语法:

<!-- ko if: $data -->
    <img src="~/Images/yes.png" alt="oui" />
<!-- /ko -->
<!-- ko ifnot: $data -->
    <img src="~/Images/no.png" alt="non" />
<!-- /ko -->

图片没有绑定到DOM,但是图片正在加载。您可以查看网络流量。当使用if bind时,它不应该加载