我的选择表单存在问题。当我选择任何选项时,传递的值是字符串类型,而不是数字类型。这是我用于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>
有什么想法吗?
答案 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"