Você está usando o
node
variável no segundo ngFor
fora de seu escopo. Esta variável só existe dentro do elemento (e seus atributos) que o ngFor
está agindo. O que você provavelmente quer fazer é esperar as mudanças no valor selecionado do primeiro select, atualizar alguma variável em seu controller, o que deve então causar o segundo
ngFor
para atualizar. Isso pode ser feito 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>