AngularJS:使用ng选项选择-如何将值作为整数传递?
我的选择表格有问题。当我选择任何选项时,传递的值是字符串类型,而不是数字类型。这是我用于ng repeat的对象:AngularJS:使用ng选项选择-如何将值作为整数传递?,angularjs,select,ng-options,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
$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>
有什么想法吗?在我看来,每次迭代对象字段时,都会出现设计问题。使用数组:
$scope.apples = [
{
id: 0,
name: 'Apple0'
},
{
id: 1,
name: 'Apple1'
},
...
];
并且认为:
ng-options="apple.id as apple.name for apple in apples"
非常简单的方法是将字符串实际转换为数字(注意,
+
运算符):
也可以使用数组作为数据结构:
$scope.apples = [
'Apple0',
'Apple1',
'Apple2',
'Apple3'
];
然后
ng-options="apples.indexOf(apple) as apple for apple in apples"
这很有效。我知道这是离题的,但你能解释一下这种设计相对于原始设计有什么好处吗?顺序是可以预测的,而使用对象时则不是。您还可以对数组进行排序(按ID,或者更现实地说,按名称):
apple.ID作为apple.name作为apple中apple的名称| orderBy:'name'
。这很有意义。谢谢
ng-options="apples.indexOf(apple) as apple for apple in apples"