2012-07-30 33 views
11

de Tengo Los seres humanos con gatos con los gatitosnocaut, foreach anidados

class Master 
{ 
    String masterName; 

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

    Kitten[] kittens; 
} 

class Kitten 
{ 
    String kittenName; 
} 

Ahora quiero mostrar todas mis gatitos con los gatos con Maestría en html Let. Yo uso

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

Respuesta

20

De los knockout documentation

$ padres Esta es una matriz que representa todos los modelos de vista de los padres:

$ padres [0] es el modelo de vista del contexto padre (es decir, , es lo mismo que $ parent)

$ parents [1] es el modelo de vista del contexto de los abuelos

Debería poder usar $parents[1] para acceder al modelo de vista maestro.

8

Se puede utilizar, $root llegar al objeto de base - que en su caso será a nivel de 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

El maestro no es root aquí ... Array of Masters es parte de otro objeto – Ilya

+0

Bueno, '$ root' te llevará al nivel más alto posible. A continuación, puede recorrer desde allí –

+0

@Ilya - solo registro de la consola para ver qué nivel es el que desea –