AngularJS 반복문 ng-repeat

■ 참고
[AngularJS] ng-repeat 사용법 정리
[Angular.js] 앵귤러JS – ng-repeat에 있는 track by에 대한 설명
 
 
 

■ AngularJS에서 반복되는 항목을 표시할때 ng-repeat 디렉티브를 사용한다. ng-repeat내의 속성에는 다음과 같다
$index – {number}, 현재 반복 요소의 오프셋(0부터 length-1까지)
$first – {boolean}, 현재 반복 요소가 첫번째 요소이면 true
$middle – {boolean}, 현재 반복 요소가 처음과 끝이 아니면 true
$last – {boolean}, 현재 반복 요소가 마지막 요소이면 true
 
 
 

■ ng-repeat 사용법 1

<!DOCTYPE html>
<html ng-app="myApp">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta charset="utf-8">
<head>
<title></title>
<script src="/js/angularjs/1.5.6/angular.js"></script>
<script src='/js/jquery/jquery-1.11.0.min.js'></script>
<script>
var myApp = angular.module("myApp",[]);
myApp.controller("myAppCtrl", function($scope){
	$scope.list = [
		{id:"1",name:"김유신"},
		{id:"2",name:"강감찬"},
		{id:"3",name:"박찬호"}
	];
});
</script>
</head>
<body ng-controller="myAppCtrl">
	<h1>
		AngularJS ng-repeat 사용예 1<br/>
		<font color="red">
			 
		</font>
	</h1>
	<hr/>
	<table border="1">
	<tr>
		<td>Id</td>
		<td>Name</td>
		<td>Index</td>
		<td>First</td>
		<td>Last</td>
		<td>Middle</td>
	</tr>
	<tr data-ng-repeat="row in list">
		<td>{{row.id}}</td>
		<td>{{row.name}}</td>
		<td>{{$index}}</td>
		<td>{{$first}}</td>
		<td>{{$middle}}</td>
		<td>{{$last}}</td>
	</tr>
	</table>
</body>
</html>

angularjs ng-repeat 사용법1

angularjs ng-repeat 사용법1


 
 
 

■ ng-repeat 사용법 2 – View내에서 데이터 등록 후 반복문 작성

<tr data-ng-repeat="row in [
	{id:'11',name:'최유신'},
	{id:'22',name:'장감찬'},
	{id:'33',name:'손찬호'}
	]">
	<td>{{row.id}}</td>
	<td>{{row.name}}</td>
	<td>{{$index}}</td>
	<td>{{$first}}</td>
	<td>{{$middle}}</td>
	<td>{{$last}}</td>
</tr>

angularjs ng-repeat 사용법2

angularjs ng-repeat 사용법2


 
 
 

■ ng-repeat 사용법 3 – track by 추가
javascript 배열은 중복된 값을 허용한다. 다만 ng-repeat에서 track by 키워드가 추가되면 중복된 인자가 있을 경우에 아래와 같이 [ngRepeat:dupes] Duplicates in a repeater are not allowed. Use ‘track by’ expression to specify unique keys. 에러 메세지가 출력된다. 해결 방법은 중복된 값을 제거하거나 track by 키워드를 제거(중복허용)한다. 즉, 중복된 id값(1)의 중복을 제거하거나 track by 키워드를 제거하면 Duplicate 에러메세지는 사라진다.

<tr data-ng-repeat="row in [
	{id:'1',name:'최유신'},
	{id:'1',name:'장감찬'},
	{id:'3',name:'손찬호'}
	] track by row.id">
	<td>{{row.id}}</td>
	<td>{{row.name}}</td>
	<td>{{$index}}</td>
	<td>{{$first}}</td>
	<td>{{$middle}}</td>
	<td>{{$last}}</td>
</tr>

angularjs ng-repeat track by

angularjs ng-repeat track by


 
 
 

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다