2012-07-30 133 views
11

讓我們的我有人類與貓與小貓淘汰賽,嵌套的foreach

class Master 
{ 
    String masterName; 

    Cat[] cats; 
} 
class Cat 
{ 
    String catName; 

    Kitten[] kittens; 
} 

class Kitten 
{ 
    String kittenName; 
} 

現在我要展示我與貓小貓都在HTML大師。我用

    <!-- ko foreach: humans --> 
        <!-- ko foreach: cats --> 
        <!-- ko foreach: kittens --> 
<p data-bind="$data.kittenName"></p> 
<p data-bind="$parent.catName"></p> 
<p data-bind="???????"></p> <!-- How get master's name? --> 
        <!-- /ko --> 
        <!-- /ko --> 
        <!-- /ko --> 

回答

20

knockout documentation

$父母 這是代表所有父視圖模型的數組:

$父母[0]是從父上下文視圖模型(即,它與$父母一樣)

$ parents [1]是來自祖父母背景的視圖模型

您應該可以使用$parents[1]來訪問主視圖模型。

8

可以使用,$root去的基本對象 - 而你的情況將在Master水平。

<!-- ko foreach: humans --> 
    <!-- ko foreach: cats --> 
     <!-- ko foreach: kittens --> 
      <p data-bind="$data.kittenName"></p> 
      <p data-bind="$parent.catName"></p> 
      <p data-bind="text:console.log($root, $parent, $data)"></p> <!-- How get master's name? --> 
     <!-- /ko --> 
    <!-- /ko --> 
<!-- /ko --> 
+0

主人不在這裏......大師的陣列是另一個對象的一部分 – Ilya 2012-07-30 12:19:27

+0

那麼'$ root'會讓你達到最高級別。然後你可以從那裏遍歷 – 2012-07-30 12:20:24

+0

@Ilya - 只是控制檯日誌,看看你想要的級別是多少 – 2012-07-30 12:22:05