我试图获取<select>
所选项目的索引,如下所示:
<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);
}
但我总是得到-1。我不明白为什么 如果有人可以帮我这个......
答案 0 :(得分:1)
答案 1 :(得分:1)
试试这个
vm.moisChanged = function(mois){
var i = vm.allMoisForAnnee.map(function(obj, index) {
if(obj.libelle == mois.libelle) {
return index;
}
}).filter(isFinite);
}
答案 2 :(得分:0)
首先,您不需要将值传递给ng-change函数,因为模型已连接到视图&amp;控制器,您可以通过控制器内部的函数实现中的'vm.currentMois'来访问它。
您尝试在该功能中执行的操作不正确。 indexOf()方法返回字符串中第一次出现指定值的位置。
如果要查找所选项目的索引,只需循环查找即可。
vm.moisChanged = function(mois){
var i;
angular.forEach(vm.allMoisForAnnee, function(item){
if(mois.id==item.id){
i = item;
console.log(i);
return false;
}
})
}