如果在模板中使用函数,则敲除

时间:2014-03-02 10:26:20

标签: knockout.js

继续我的淘汰赛之旅我遇到了以下问题。

我尝试将几张画廊与其中的图片一起输出。没什么特别的,我的模型看起来像这样:

this.elements = ko.observableArray([{
    type: 'img',
    text: 'fish',
    imgs: ko.observableArray([
        'http://c1.wag.com/images/products/rdg/rdg-010_Small2a.jpg',
        'https://www.uoguelph.ca/cio/sites/uoguelph.ca.cio/files/images/SmallFish_0.jpg'
    ])
}, ...]);

但我想拥有以下功能。当imgs中没有图像时,请写下它。

所以我在模板中使用<div data-bind="if: !imgs.length">No images</div>进行了尝试。但没有结果(检查my fiddle for the whole code)。输出在每次迭代中写入。

但是当我尝试做类似的事情但明确显示图像数量时,it works nicely

那么我的imgs.length方法有什么问题?

2 个答案:

答案 0 :(得分:1)

您应该使用!imgs().length())。 imgs是可观察的数组,所以它是函数,你应该在获得数组的length属性之前执行它。

答案 1 :(得分:1)

您应该使用imgs().length。 imgs是可观察的数组,其长度可以使用()进行访问。请参阅小提琴here