knockoutjs data-bind动态img src基于索引

时间:2016-02-25 18:06:06

标签: javascript knockout.js knockout-2.0 knockout-3.0

我有这段代码:

  <tbody>
                        <tr data-bind="foreach: EffectQuantityTotal">
                            <td>
                                <span>
                                    <img data-bind="attr: { src: $root.ProductEffectImages() ? $root.ProductEffectImages()[0].ImageSrc : '../images/style2/pose-select-placeholder.png' }, click: $root.Paste"
                                        width="120" />
                                </span>
                            </td>
                        </tr>
                    </tbody>

$ root.ProductEffectImages()将为null,直到实际的点击事件“粘贴”为止。将不会。占位符图像显示正常但我想在完成单击功能后更新图像。该对象被正确创建,但我想获得每个effectquantitytotal的第n个图像,例如,如果我的EffectQuantityTotal为3,对于每个值,我将创建图像占位符,在选择ImageUrl之前,将显示占位符但是一旦选择了图像,就需要设置正确的图像URL。

因此,而不是我现在测试硬编码$ root.ProductEffectImages()[0] .ImageSrc 0将被替换为第n个值,可能是使用$ index而不是0。

知道我该怎么做吗? 感谢

1 个答案:

答案 0 :(得分:0)

observableArray初始化为空数组,而不是null,即使您将其传递null。在您创建它之后,您可以指定它null然后它将真正具有该值,并且您的条件允许您使用

src: $root.ProductEffectImages() ? $root.ProductEffectImages()[$index() - 1].ImageSrc : ...