MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

(Angular 2) Como preencher uma lista suspensa com base em outra seleção suspensa


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>