angularjs 可以从ng-repeat中循环出五条数据吗
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了angularjs 可以从ng-repeat中循环出五条数据吗相关的知识,希望对你有一定的参考价值。
参考技术A 循环输出列表很多项目在web服务端做,前端做好模版后后端写jsp代码,双方需要紧密合作,分清责任。有些项目由后端提供restful方法,前端用ajax调用自己循环,这种一般是大把的jquery拼字符串,太不直观,有人搞出了js模板,也没好到哪里去。用AngularJS就爽多了,语法和JSP类似:
?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<!doctype html>
<html ng-app>
<head>
<meta charset="utf-8">
<title>ng-repeat directive</title>
</head>
<body>
<table ng-controller="CartController">
<caption>我的购物车</caption>
<tr>
<th>序号</th>
<th>商品</th>
<th>单价</th>
<th>数量</th>
<th>金额</th>
<th>操作</th>
</tr>
<tr ng-repeat="item in items">
<td>$index + 1</td>
<td>item.name</td>
<td>item.price | currency</td>
<td><input ng-model="item.quantity"></td>
<td>item.quantity * item.price | currency</td>
<td>
<button ng-click="remove($index)">Remove</button>
</td>
</tr>
</table>
<script src="../lib/angularjs/1.2.26/angular.min.js"></script>
<script>
function CartController($scope)
$scope.items = [
name: "雷柏(Rapoo) V500 机械游戏键盘 机械黄轴", quantity: 1, price: 199.00,
name: "雷柏(Rapoo) V20 光学游戏鼠标 黑色烈焰版", quantity: 1, price: 139.00,
name: "AngularJS权威教程", quantity: 2, price: 84.20
];
$scope.remove = function (index)
$scope.items.splice(index, 1);
</script>
</body>
</html>
ng-repeat指令生命在需要循环内容的元素上,items和控制器上的变量名对应,item是为数组中单个对象起的别名。$index可以返回当前引用对象的序号,从0开始,另外还有$first、$middle、$last可以返回布尔值,用于告诉你当前元素是否是集合中的第一个中间的最后一个元素。本回答被提问者和网友采纳
Angular JS - ng-repeat 和循环条件
【中文标题】Angular JS - ng-repeat 和循环条件【英文标题】:Angular JS - ng-repeat and loop conditions 【发布时间】:2014-02-16 14:05:47 【问题描述】:嘿,我有这段代码:
<div ng-repeat="i in values">
i
</div>
它可以工作,但我想在循环中添加额外的条件,例如:
<div ng-repeat="i in values">
i
if(i !== 0)
<div></div>
</div>
我怎样才能做到这一点?
【问题讨论】:
【参考方案1】:使用ng-if
(或ng-show
):
<div ng-repeat="i in values">
<div ng-if="i !== 0"></div>
</div>
附加到元素上,这将决定是否显示它。
ng-if can be found here 的文档。
但是,如果您只想在循环第一个或最后一个项目时执行某些操作,您也可以使用ng-repeat
的$first
和$last
属性。这些是documented with ng-repeat。并且可以这样使用:
<div ng-repeat="i in values">
<div ng-if="$first"></div>
</div>
【讨论】:
ng-if 是比 ng-show 更好的解决方案,因为 ng-if 修改了 DOM。 ng-show 只显示/隐藏元素。 @RaviH 是的,这就是示例使用 ng-if 的原因。但是,根据您要实现的目标,它们都是有效的解决方案。 @DavinTryon 嘿,谢谢你,你知道我怎么能在同一个循环中放置一个增量变量吗? :P 我想仅在 increment%3 === 0 的情况下在循环内显示一个 div,但我不知道如何:( @sbaaaang ng-repeat 内置了一个:$index
。您还可以使用 $odd
和 $even
来执行交替行之类的操作。
是的,应该这样做。【参考方案2】:
使用ng-if
statement
<div ng-repeat="i in values">
i
<div ng-if="i !== 0"></div>
</div>
【讨论】:
以上是关于angularjs 可以从ng-repeat中循环出五条数据吗的主要内容,如果未能解决你的问题,请参考以下文章
AngularJS - 在 $(document).ready 上的 ng-repeat 循环内定位元素
如何通过angularJS中的计数使用ng-repeat循环