我有一个由以下对象填充的选择下拉列表:
<select class="form-control" ng-model="nonexistantmodel" ng-options="idx as idx+1 + order for (idx, order) in amazon.orders">
我正在尝试从1开始显示数组索引。(0,1,2,3变为1,2,3,4)
但当然idx+1
只会加入字符串,最终会像01, 11, 21, 31
我也尝试应用number
过滤器,但无济于事:
(idx+1 | number: 0)
或(idx | number: 0) + 1
或(idx | number: 0) + (1 | number: 0)
但他们似乎只是加入了相同结果的字符串。
有没有办法实现这个目标?
答案 0 :(得分:0)
问题是Angular将数组的索引视为字符串。您需要将它传递给一个函数,该函数将其解析为整数并向其添加1,并返回该结果。
我建议制作一个简单的过滤器:
app.filter('plus1', function() {
return function(input) {
var i = parseInt(input, 10);
return i+1;
};
});
然后你的表情将如下所示:
idx as (idx|plus1) + order for (idx, order) in amazon.orders
或者你可以把这样的东西放在你的控制器中:
$scope.indexBy1 = function(index) {
var i = parseInt(index, 10);
return i+1;
};
然后ng-options
中的表达式将如下所示:
idx as indexBy1(idx) + order for (idx, order) in amazon.orders
答案 1 :(得分:0)
只需使用idx+1
或idx*1+1
或idx/1+1
更改idx-0+1
。
查看live example。