sql >> Base de Datos >  >> NoSQL >> MongoDB

(Angular 2) Cómo completar un menú desplegable en función de otra selección desplegable

Estás usando el node variable en el segundo ngFor fuera de su alcance. Esta variable solo existe dentro del elemento (y sus atributos) que ngFor está actuando.

Lo que probablemente quiera hacer es esperar los cambios en el valor seleccionado de la primera selección, actualizar alguna variable en su controlador, lo que debería causar el segundo ngFor para actualizar. Esto se puede hacer 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>