gpt4 book ai didi

javascript - Angular JS : $index like parameter of a filter

转载 作者:行者123 更新时间:2023-11-30 06:28:04 26 4
gpt4 key购买 nike

我想传递变量 $index 之类的过滤器参数。代码如下:

HTML:

<div ng-app='myApp' ng-controller="Main" >
<div ng-repeat="i in (filtered = (elements | myFilter: $index))" >

<ul>
<il ng-repeat="i in filtered">{{i.T}}</il>
</ul>


</div>
</div>

JS:

var myApp = angular.module('myApp', [])
.filter("myFilter", function(){
return function(input, index){
var newArray = [];
for(var x = 0; x < input.length; x+=2){
newArray.push(input[index]);
}
return newArray;
}
});


function Main($scope){
$scope.elements = [
{ T: 't1', V: "v1"},
{ T: 't2', V: "v2"},
{ T: 't3', V: "v3"},
{ T: 't4', V: "v4"},
{ T: 't5', V: "v5"}
];
}

我已经证明,如果我传递一个类似数字的参数,它是有效的。但是当我传递变量 $index 时,代码不起作用。

有没有像过滤器中的参数一样传递变量 $index 或 ng-repeat 的索引?

问候。

编辑:

真的,我想展示这样的东西:

...t1t2t3t4t5...或者在 HTML 中:

...

<div>
<ul>
<il>t1</il>
<il>t2</il>
</ul>
</div>
<div>
<ul>
<il>t3</il>
<il>t4</il>
</ul>
</div>
<div>
<ul>
<il>t5</il>
</ul>
</div>

最佳答案

我看不出在过滤器中使用 $index 的原因,因为过滤器会遍历所有列表。

但是我会在没有过滤器的情况下实现相同的逻辑,例如:

<div ng-controller = "fessCntrl"> 
<div ng-repeat="i in elements" >
<ul>
<il ng-show="$index % 2 == 0">{{i.T}}</il>
</ul>
</div>
</div>

演示 Fiddle

使用过滤器你可以这样写:

HTML

<div ng-controller = "fessCntrl"> 
<div ng-repeat="i in elements | myFilter" >
<ul>
<il>{{i.T}}</il>
</ul>
</div>
</div>

JS

.filter("myFilter", function(){
return function(input){
console.log(input);

var newArray = [];
for(var x = 0; x < input.length; x+=2){
newArray.push(input[x]);
}
return newArray;
}
});

演示 2 Fiddle

关于javascript - Angular JS : $index like parameter of a filter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19801147/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com