敲除,嵌套foreach

knockout, nested foreach

本文关键字:foreach 嵌套 敲除      更新时间:2024-06-05

让我们有人类与猫与小猫

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 -->

来自淘汰文档

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

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

$parents[1]是来自祖父母上下文的视图模型

您应该能够使用$parents[1]来访问主视图模型。

您可以使用,$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 -->