Подтвердить что ты не робот

Нокаут, вложенный 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 name? -->
                    <!-- /ko -->
                    <!-- /ko -->
                    <!-- /ko -->
4b9b3361

Ответ 1

Из документация нокаута

$родители Это массив, представляющий все модели родительского представления:

$parents [0] - это модель представления из родительского контекста (т.е. ее то же, что и $parent)

$parents [1] - это модель представления из контекста бабушки и дедушки.

Вы можете использовать $parents[1] для доступа к модели просмотра Master.

Ответ 2

Вы можете использовать $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 name? -->
        <!-- /ko -->
    <!-- /ko -->
<!-- /ko -->