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

时间:2015-11-12 07:40:59

标签: angularjs select ng-options

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

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

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

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

有什么想法吗?

2 个答案:

答案 0 :(得分:6)

每次您在对象字段IMO上进行迭代时,都存在设计问题。使用数组:

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

并在视图中:

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

答案 1 :(得分:3)

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

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"