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

uks*_*ksz 3 select angularjs ng-options

我的选择表单存在问题.当我选择任何选项时,传递的值是字符串类型,而不是数字类型.这是我用于ng-repeat的对象:

$scope.apples ={
         0:'Apple0',
         1:'Apple1',
         2:'Apple2',
         3:'Apple3'
};
Run Code Online (Sandbox Code Playgroud)

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

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

有任何想法吗?

JB *_*zet 6

每次迭代对象字段时,IMO都存在设计问题.使用数组:

$scope.apples = [
  {
    id: 0,
    name: 'Apple0'
  },
  {
    id: 1,
    name: 'Apple1'
  },
  ...
];
Run Code Online (Sandbox Code Playgroud)

并在视图中:

ng-options="apple.id as apple.name for apple in apples"
Run Code Online (Sandbox Code Playgroud)


dfs*_*fsq 5

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

ng-options="+key as value for (key,value) in apples"
Run Code Online (Sandbox Code Playgroud)

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

$scope.apples = [
    'Apple0',
    'Apple1',
    'Apple2',
    'Apple3'
];
Run Code Online (Sandbox Code Playgroud)

进而

ng-options="apples.indexOf(apple) as apple for apple in apples"
Run Code Online (Sandbox Code Playgroud)