MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

(Angolo 2) Come popolare un menu a discesa in base a un'altra selezione a discesa

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>