Stai usando il node
variabile nel secondo ngFor
al di fuori del suo ambito. Questa variabile esiste solo all'interno dell'elemento (e dei suoi attributi) che è ngFor
sta agendo.
Quello che probabilmente vuoi fare è aspettare le modifiche al valore selezionato della prima selezione, aggiornare alcune variabili nel tuo controller, che dovrebbe quindi causare il secondo ngFor
per aggiornare. Questo può essere fatto usando 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>