Angularjs 在ng选项中将索引偏移1

Angularjs 在ng选项中将索引偏移1,angularjs,Angularjs,我有一个由如下对象填充的选择下拉列表: idx as (idx|plus1) + order for (idx, order) in amazon.orders idx as indexBy1(idx) + order for (idx, order) in amazon.orders 我试图让数组索引从1开始显示。(0,1,2,3变为1,2,3,4) 但是当然,idx+1只会连接字符串,它会像01、11、21、31一样结束 我也尝试过应用数字过滤器,但没有效果: (idx+1号:0)或(

我有一个由如下对象填充的选择下拉列表:

idx as (idx|plus1) + order for (idx, order) in amazon.orders
idx as indexBy1(idx) + order for (idx, order) in amazon.orders

我试图让数组索引从1开始显示。(0,1,2,3变为1,2,3,4)

但是当然,
idx+1
只会连接字符串,它会像
01、11、21、31一样结束

我也尝试过应用
数字
过滤器,但没有效果:

(idx+1号:0)
(idx号:0)+1
(idx号:0)+(1号: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
idx as indexBy1(idx) + order for (idx, order) in amazon.orders
或者您可以在控制器中放置类似的内容:

$scope.indexBy1 = function(index) {
  var i = parseInt(index, 10);
  return i+1;
};
然后,
ng options
中的表达式将如下所示:

idx as (idx|plus1) + order for (idx, order) in amazon.orders
idx as indexBy1(idx) + order for (idx, order) in amazon.orders

只需使用
idx*1+1
idx/1+1
idx-0+1
更改
idx+1


请参阅。

是否尝试使用idx++而不是idx+1?@victor175
++idx
idx++
都会导致解析器错误