2017-09-27 2 views
1

Also, ich habe diese beiden Dropdown-Element und der Ausgang der zweiten wird von der Eingabe der ersten abhängen. Das zweite Drop-down wird die Eingabe des ersten Drop-Down als (ng-options="reason for reason in getReason($ctrl.selectedItem)) nehmen. Allerdings habe ich festgestellt, dass das zweite Dropdown-Feld nicht warten wird, bis das erste Dropdown ausgewählt wird und die ng-options ausführen, aber da es die Eingabe von zuerst benötigt. Es verursacht null Fehler.Wie werden ng-Optionen ausgeführt, nachdem sie aktiviert wurden?

Wie löse ich dieses Problem?

class Items{ 
 
    constructor(){ 
 
     this.items = ["item1", "item2", "item3"]; 
 
     this.selectedItem = null; 
 
     this.stuff = { 
 
      "item1" : ["asdd"], 
 
      "item2" : ["asdasdsd", "asdsddd], 
 
      "item3" : ["asdasdasd] 
 
     }; 
 
    } 
 
    getReason(item){ 
 
    return this.stuff[item]; 
 
    } 
 
}
<select ng-model=“$ctrl.selectedItem” ng-options=“item for item in items”> 
 
</select> 
 
<select ng-disabled=“!$ctrl.selectedItem” ng-options=“reason for reason in getReason($ctrl.selectedItem)”>

+0

Wenn dies eine Option sein kann, versuchen Sie, 'ng-if' zur zweiten Auswahl hinzuzufügen. – zmii

Antwort

0

Ändern Sie Ihre getReason um ein leeres Array zurück, wenn item kein "gültig" Argument.

getReason(item){ 
    item ? return this.stuff[item] : []; 
} 

Hinweis: Dies wird die zweite Dropdown halten leer, bis das item Argument gültig ist.

Verwandte Themen