Angular2 imbriquée *ngFor

- Je utiliser un tableau pour stocker une liste d'objets de groupe et un tableau de la liste des objets de la lumière.
J'en veux pour preuve le premier groupe dans le code html et tous reliés les lumières de ce groupe. Après que le groupe suivant et les lumières et ainsi de suite....

<div>
  <ul>
    <li *ngFor="let group of hueGroups">
      {{group.name}}
      <li *ngFor="let light of hueLights; let i = index">
      {{hueLights[group.lights[i]].name}}
    </li>
  </ul>
</div>



export class AppComponent implements OnInit {
  hueGroups:any[];
  hueLights:any[];

  constructor(){
    this.hueGroups = [];
    this.hueLights = [];
  }

  listAllGroups(){
   for(var g in MyHue.Groups){ //MyHue.Groups returen an array with objects
    console.log(g);
    console.log(MyHue.Groups[g].name);
    for(var id:number = 0; id < MyHue.Groups[g].lights.length; id++){
      console.log("LightID:" + MyHue.Lights[MyHue.Groups[g].lights[id]].name); //Returns the name of the Lights
    }
    this.hueGroups.push(MyHue.Groups[g]);
  }

  listAllLights(){
   for(var l in MyHue.Lights){ //MyHue.Lights returns an array with objects
    console.log(MyHue.Lights[l]);
    this.hueLights.push(MyHue.Lights[l]);
   }
  }

}

Si j'essaie d'exécuter ce que je reçois le message d'erreur

Impossible de lire la propriété 'lumières' undefined

Donc je pense que la syntaxe est mauvaise pour la imbriquée ngFor. Il devrait être possible d'appeler le "groupe" à partir de ci-dessus.

EDIT:
C'est la partie importante de la façon dont un objet de la MyHue.Groupes ressemble:

{action:Object
 class:"Living room"
 lights: Array(2)
   0:"3"
   1:"1"
 name:"Room1"}

Dans le Groupe de l'objet n'est que l'ID de lumières qui sont en fonction à ce groupe

C'est la partie importante de la façon dont un objet lumineux ressemble:

 {state: Object, type: "Extended color light", name: "Couch1", modelid: "LCT007"…}

C'est ce que j'obtiens si j'ai l'impression que le trou de tableau dans la console:

Object {1: Object, 3: Object, 4: Object}

Donc, je dois correspondre à la Lumière ID est dans le Groupe, puis vérifiez la lumière de l'Objet pour le nom

Il semble que vous essayez d'utiliser *ngFor avec un object. *ngFor fonctionne uniquement avec Arrays. Vous pouvez créer un tuyau et de les utiliser *ngFor pour itérer sur les touches de hueLights.
avez-vous un exemple? Je suis assez nouveau Angulaire 2
Inclure le contenu de hueLights et hueGroups donc ça va être mieux le comprendre.
ok j'ai compris, la partie importante
pouvez-vous inclure quelques exemples d'objets? Cela devrait être résolues par une seule carte plus susceptibles

OriginalL'auteur WeSt | 2017-05-30