2014-07-23 51 views
1

我编写了一个过滤器,使用有关反向过滤器的众多堆栈溢出问题之一来反转列表。AngularJS反转项目列表显示非反转索引编号

我的代码:

<div ng-repeat="query in queries | reverse"> 
    <p>Submission: {{$index}}</p> 
    <p>Title: {{query.title}}</p> 
    <p>Body: {{query.response}}</p> 
</div> 

数组:

var queries = [ 
    { title: "Query type A", body: "Response of query type A" }, 
    { title: "Query type B", body: "Response of query type B" }, 
    { title: "Query type C", body: "Response of query type C" } 
]; 

现在,我的名单是相反的,我想显示在每个项目上算的,所以它看起来像下面这样:

Submission: 3 
Title: Query type C 
Body: Response of query type C 

Submission: 2 
Title: Query type B 
Body: Response of query type B 

Submission: 1 
Title: Query type A 
Body: Response of query type A 

但是,相反,顺序是正确颠倒,但提交编号(这只是$index,向后:

Submission: 1 
Title: Query type C 
Body: Response of query type C 

Submission: 2 
Title: Query type B 
Body: Response of query type B 

Submission: 3 
Title: Query type A 
Body: Response of query type A 

我意识到,不知何故这可能是正确的行为,但我该如何显示相反的数字?

回答

1

$ index只是简单地遍历循环中的项目。它没有意识到逆转。你可以在查询,如“ID”元素:

var queries = [ 
    { title: "Query type A", body: "Response of query type A", id:1 }, 
    { title: "Query type B", body: "Response of query type B", id:2 }, 
    { title: "Query type C", body: "Response of query type C", id:3 } 
]; 

,并使用<p>Submission: {{query.id}}</p>代替<p>Submission: {{$index}}</p>

+0

我应该提到,我想不必设置数据对象内的财产本身,因为这些对象是实际查询字段提交的结果...因此,每次运行查询时,对象都会动态添加到列表中。 – Kristian

+0

有趣的是,我只是试图打印一些减法,似乎也有效。 – Kristian

+0

减法将适用于反转,但如果您决定按不同的顺序排序它们,例如按标题排序,那​​么它将再次破裂。 – Sid

1

而不是从数组长度打印$index,打印$index的不同作品:

{{queries.length - $index}}

+0

令人敬畏的工作@Kristian – Davis

0

它是一个好问题的朋友,在过去我遇到了同样的问题 而不是给了{ {$指数}},给

{{queries.length + 1 - $指数}}