KnockoutJS嵌套的foreach未定义

时间:2012-06-02 22:52:03

标签: jquery-mobile knockout.js knockout-2.0

我会保持简短。我的视图模型如下所示:

var ViewModel = {
    Cameras: ko.observableArray(),
    Current: ko.observableArray()
};

我想做这样的事情:

<!-- ko foreach: Cameras -->
    <div data-role="collapsible">
        <h3 data-bind="text: CameraName"></h3>
        <!-- ko foreach: Current -->
            <img data-bind="attr: { src: URL }" />
        <!-- /ko -->
    </div>
<!-- /ko -->

CameraName属性来自Cameras数组,而URL属性来自Current数组,但是当我这样做时,我得到“Current is not defined”。我已经研究过嵌套的foreach但是必须有一些我不能正确理解的东西。

1 个答案:

答案 0 :(得分:4)

Current必须是Cameras中项目的属性。

像这样...

var Camera = function() {
    this.Current = ...
}

您可以尝试使用Knockout 2.1 $parent

<!-- ko foreach: Cameras -->
    <div data-role="collapsible">
        <h3 data-bind="text: CameraName"></h3>
        <!-- ko foreach: $parent.Current -->
            <img data-bind="attr: { src: URL }" />
        <!-- /ko -->
    </div>
<!-- /ko -->