Vous utilisez le node
variable dans le second ngFor
hors de son champ d'application. Cette variable n'existe qu'à l'intérieur de l'élément (et de ses attributs) que le ngFor
agit sur.
Ce que vous voulez probablement faire est d'attendre les modifications apportées à la valeur sélectionnée de la première sélection, mettre à jour une variable dans votre contrôleur, ce qui devrait alors provoquer le second ngFor
à mettre à jour. Cela peut être fait en utilisant ngModelChange
:
<div class="row">
<div class="col-md-12">
<label>Choose a room</label>
<select [(ngModel)]="nodes" (ngModelChange)="selectedNode=$event.target.value">
<option *ngFor="let node of nodes"[ngValue]="node">{{node.name}}</option>
</select>
<br/><br/>
<label>Choose an item</label>
<div *ngFor="let module of selectedNode.modules">
<select [(ngModel)]="channels">
<option *ngFor="let channel of module.channels">
{{channel.name}}
</option>
</select>
</div>
</div>