2012-06-02 46 views
1

我會保持簡短。我的視圖模型是這樣的:KnockoutJS嵌套的foreach未定義

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屬性是從攝像機陣列和URL屬性是從當前的陣列,但是當我這樣做我得到「電流未定義」。我已經研究過嵌套的foreach,但一定有一些我不能正確理解的東西。

回答

3

Current必須是在Cameras項目的財產。

是這樣的...

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

你可以嘗試淘汰賽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 --> 
+0

攝像機陣列在文件準備好時填充,但當前陣列在不同時間被重新填充。當Knockout通過相機循環時,它甚至可能是空的。有沒有辦法做到這兩個不同的數組(如上面我的問題)? – judehall

+0

@ViktorBlöndal我更新了。 –

+0

$父母是關鍵:)非常感謝我的朋友! – judehall