我使用 Angular 1.5。我有两个选择,我需要根据第一个选择的选项索引更新第二个选择。
有没有一种简单的方法来获取所选选项的索引?就像从 0
到 5
一样。
我的第一个选择是:
<select class="form-control" name="idEtablissement" ng-model="infosEtab.idEtablissement" ng-change="updateContrats()"
ng-options='item.id as item.name for item in listeEtablissement'>
</select>
我需要这样的东西:
// return -1, listeEtablissement is [{id: 2, name: 'Test'}, {...}]
alert($scope.listeEtablissement.indexOf($scope.infosEtab.id));
$listeEtablissement 是:
[{id: 2, name: 'Test'}, {id: 5, name: 'Test 2'}]
但是我需要索引,比如 0 或 1。
已编辑
好吧,我将使用 Javascript 方法,最简单的方法:
$scope.updateContrats = function() {
var index = document.getElementById('idEtablissement').selectedIndex;
// ....
}
最佳答案
您应该使用 array.findIndex();
通过 native JavaScript 来完成此操作,如 runnable demo fiddle 所示。
查看
<div ng-controller="MyCtrl">
<select class="form-control"
name="idEtablissement"
ng-model="infosEtab.idEtablissement"
ng-change="updateContrats()"
ng-options='item.id as item.name for item in listeEtablissement'>
</select>
</div>
AngularJS 应用
var myApp = angular.module('myApp', []);
myApp.controller('MyCtrl', function($scope) {
$scope.selectedIndex = null;
$scope.listeEtablissement = [{
id: 2,
name: 'Test'
}, {
id: 5,
name: 'Test 2'
}];
$scope.updateContrats = function() {
$scope.selectedIndex = $scope.listeEtablissement.findIndex(function(item) {
return item.id === $scope.infosEtab.idEtablissement
});
}
});
关于javascript - jquery 中的 index() 的 Angular 等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42852680/