9

使用 Chrome 进行调试时,我可以看到 CoverPrices 有 9 个元素。foreach 循环实际上运行良好,表格看起来正确,第一个跨度正确绑定到 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 -->

我的装订有问题吗?

4

2 回答 2

31

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 -->
于 2013-03-13T10:39:45.450 回答
0

图像未绑定到 DOM,但图像正在加载。您可以检查网络流量。如果使用绑定,则不应加载

于 2016-02-09T18:13:04.513 回答