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++
都会导致解析器错误