Carga recursiva de componentes con matriz recursiva

Estoy tratando de cargar un componente Angular 2 recursivamente con una matriz recursiva (plunk:http://plnkr.co/edit/3npsad?p=preview)

Dado este conjunto recursivo:

[
  {
    "id": 1,
    "text": "abc"
  },
  {
    "id": 2,
    "text": "def",
    items: [
      {
        "id": 21,
        "text": "def-1",
        items: [
          {
            "id": 211,
            "text": "def-1-1"
          },
          {
            "id": 212,
            "text": "def-1-2"
          }
        ]
      },
      {
        "id": 22,
        "text": "def-2"
      }
    ]
  }
]

Necesito el siguiente resultado:

<my-item>
    <div id="1" text="abc"></div>
</my-item>
<my-item>
    <div id="2" text="def"></div>
    <my-item>
        <div id="21" text="def-1"></div>
        <my-item>
            <div id="211" text="def-1-1"></div>
        </my-item>
        <my-item>
            <div id="212" text="def-1-2"></div>
        </my-item>
    </my-item>
    <my-item>
        <div id="22" text="def-2"></div>
    </my-item>
</my-item>

Solo pude representar el primer nivel de entrada como se muestra en mi plunk. ¿Cómo puedo hacer que mi componente itere recursivamente para representar la salida deseada? La matriz de entrada puede contener cualquier número de elementos y anidamiento.

¡Gracias!

Respuestas a la pregunta(3)

Su respuesta a la pregunta