0

我在我的视图模型上定义了以下函数,用于检查数组中的项目是否是图像以及它是否是数组中的第一项:

    self.isCoverImage = function(item) {
        return item.isImage && media.indexOf(item) === 0;
    };

if是否可以使用注释表达式中的绑定在我的项目模板中绑定到 this ?我尝试了以下但没有传递给isCoverImage函数。

<!-- ko if: $parent.isCoverImage($data) -->
        <i class="img-ribbon-cover-image"></i>
<!-- /ko -->
4

1 回答 1

2

我认为这一定是您的外部 foreach 循环或其他任何问题......或者您可能需要添加“self.media”而不仅仅是“media”。

我做了一个 JS 小提琴,它似乎按预期工作:http: //jsfiddle.net/RYXdA/

这是HTML:

<div data-bind="foreach: media">
    <div>
        <span data-bind="text: id"></span>
        <!-- ko if: $parent.isCoverImage($data) -->
            <i class="img-ribbon-cover-image">Image</i>
        <!-- /ko -->
    </div>
</div>

和 Javascript:

var viewModel = {
    media: [
        { id: 1, isImage: true},
        { id: 2, isImage: false },
        { id: 3, isImage: true }
    ]
};    

viewModel.isCoverImage = function(item) {
    return item.isImage && viewModel.media.indexOf(item) === 0;
};

ko.applyBindings(viewModel);
于 2013-01-29T01:08:56.430 回答