我将一个对象数组加载到一个选择框中。用户进行选择...如何识别他们选择的数组对象,以便在下游工作中使用它?
例如,如果用户选择数组中的第二个对象...如何识别选择是数组中的第二项?
http://jsfiddle.net/silvajeff/LRXkV/3/
angular.module('demoApp', []).controller('DemoController', function ($scope) {
$scope.captions = [{
name: 'A',
value: 'a'
}, {
name: 'B',
value: 'b'
}, {
name: 'C',
value: 'c'
}, {
name: 'D',
value: 'd'
}, {
name: 'E',
value: 'e'
}];
//how could I determine that 3 should be the number used in the expression below
$scope.selectedCaption = $scope.captions[3];
});
答案 0 :(得分:1)
您可以在数组中查看所选项目的索引:
$scope.$watch(function() {
return $scope.captions.indexOf($scope.selectedCaption);
},
function(newVal, oldVal) {
if (newVal != oldVal) {
alert('New index of selected caption :' + newVal);
}
});
或者只是注意selectedCaption
并在侦听器函数中获取索引:
$scope.$watch('selectedCaption',
function (newVal, oldVal) {
if (newVal != oldVal) {
alert('New index of selected caption :' + $scope.captions.indexOf(newVal));
}
});
答案 1 :(得分:0)
您的代码位于正文onload
中,因此该模块甚至未正确初始化,这就是您的小提琴无法正常工作的原因。
$scope.selectedCaption
是select的模型,随着选择值的变化会自动更新。