2016-10-25 9 views
1

Ich versuche, den Index des ausgewählten Elements meiner <select> wie folgt zu erhalten:AngularJS: das Index des ausgewählten Objekts in ausgewählten Tag

<select class="form-control" id="field_Mois" name="mois" 
     ng-model="vm.currentMois" 
     ng-options="mois as mois.libelle for mois in vm.allMoisForAnnee track by mois.id" 
     ng-change= "vm.moisChanged(vm.currentMois)"> 
</select> 

vm.moisChanged = function(mois){ 
    var i = vm.allMoisForAnnee.indexOf(mois); 
} 

Aber ich bin immer -1 bekommen. Ich verstehe nicht warum.
Wenn mir jemand dabei helfen kann ...

Antwort

1

Probieren Sie diese

vm.moisChanged = function(mois){ 
    var i = vm.allMoisForAnnee.map(function(obj, index) { 
     if(obj.libelle == mois.libelle) { 
      return index; 
     } 
    }).filter(isFinite); 
} 
1

Es gibt -1 zurück, da das übergebene Objekt nicht im Array gefunden wird. Überprüfen Sie, was an die Controller-Funktion übergeben wird.

sicher vm.currentMois Stellen hat einige Objekt

DEMO

+0

vm.currentMois hat ein Objekt, das eigentlich das Objekt ist, das in