我有一个名为clickNext()的按钮。只要单击该按钮,它就会在名为filteredData的数组上递增索引位置(scope.selected)。
function clickNext() {
var length = scope.vm.filteredData.length;
if (scope.selected === length - 1) {
return null;
}
else {
scope.selected = (scope.selected + 1) % length;
}
}
我已将此数组映射到名为xsData的相同数组。 xsData与filteredData完全相同,只是它的排序方式不同。
如何使用clickNext函数增加范围。为xsData数组选择增量器?现在,clickNext函数仍然按照filteredData数组的顺序递增。
我尝试了以下内容:
clickNext(){
var oldXsIndex = filteredToXs(scope.selected);
scope.selected = oldXsIndex + 1;
}
function filteredToXs( filteredIndex ) {
var ccir = scope.vm.filteredData[ filteredIndex ];
var xsIndex = scope.xsDropdown.findIndex( function(item) {
return item.trackingNumber === ccir.trackingNumber;
} );
if( xsIndex >= 0 ) return xsIndex;
if( xsIndex === -1 ) return 0; // Default value }
我觉得好像解决方案与上面类似,但它并没有像我尝试过的那样递增。
HTML:
<button type="button" class="right-btn col-xs-6" role="menuitem" ng-click="clickNext()" >Next</button>
这就是我获取xsData数组的方法,并根据不同的属性对其进行排序
function populateXsDropdown()
{
scope.xsData = scope.filteredData
.map(function (ccir, index)
{
return {
index: index,
catNum: ccir.catNum,
trackingNumber: ccir.trackingNumber,
catType: ccir.catType
};
})
.sort(function (a, b)
{
var left = a.catNum.match(/CAT (I+) #([0-9]+)/);
var right = b.catNum.match(/CAT (I+) #([0-9]+)/);
if (left[1].length == right[1].length)
{
return left[2] - right[2];
}
else return left[1].length - right[1].length;
});
}