AngularJS: Select with ng-options- 如何将值作为整数传递?

AngularJS: Select with ng-options- how to pass value as integer?

我的 select 表格有问题。当我 select 任何选项时,传递的值是字符串类型,而不是数字类型。这是我用于 ng-repeat 的对象:

$scope.apples ={
         0:'Apple0',
         1:'Apple1',
         2:'Apple2',
         3:'Apple3'
};

这是我的 select,它传递字符串而不是数字:

 <select ng-model="test" ng-options="key as value for (key,value) in apples"></select>

有什么想法吗?

每次迭代对象字段时,IMO,都会有设计问题。使用数组:

$scope.apples = [
  {
    id: 0,
    name: 'Apple0'
  },
  {
    id: 1,
    name: 'Apple1'
  },
  ...
];

并且在视图中:

ng-options="apple.id as apple.name for apple in apples"

非常简单的方法是将字符串实际转换为数字(注意,+ 运算符):

ng-options="+key as value for (key,value) in apples"

也可以使用数组作为数据结构:

$scope.apples = [
    'Apple0',
    'Apple1',
    'Apple2',
    'Apple3'
];

然后

ng-options="apples.indexOf(apple) as apple for apple in apples"