淘汰赛,嵌套的foreach

Ily*_*lya 15 javascript knockout.js

让我和人类一起养猫与小猫

class Master
{  
   String masterName;

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

   Kitten[] kittens;
}

class Kitten 
{
   String kittenName;
}  
Run Code Online (Sandbox Code Playgroud)

现在我希望在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 -->
Run Code Online (Sandbox Code Playgroud)

Kye*_*ica 25

淘汰赛文件

$ parents这是一个表示所有父视图模型的数组:

$ parents [0]是来自父上下文的视图模型(即,它与$ parent相同)

$ parents [1]是来自祖父母背景的视图模型

您应该可以使用$parents[1]访问主视图模型.


Jib*_*ham 11

您可以使用,$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 -->
Run Code Online (Sandbox Code Playgroud)