■ Front-End ■/AngularJs

[AngularJS] $http 서비스를 이용하여 json을 갖고와 표시해보자.

한길(One Way) 2023. 2. 22.

SPA 작성을 쉽게 하는 자바스크립트 웹 프레임워크이다.

 

AngularJS에서 $http 서비스를 이용하여 json 데이터를 컨트롤러에 갖고 와 화면에  표시해 본다. AngularJS를 사용하기 위해서 아래와 같이 angularJS CDN을 script 태그에 추가한다.

<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>

 

 

div 태그에 ng-app 속성을 만들고 "myApp" 으로 정의하고 ng-controller 속성을 만들고 "myCtrl"이라고 정의한다.

<div ng-app="myApp" ng-controller="myCtrl">

 

 

컨트롤러 코드를 살펴보면 $http.get()으로 파일경로를 입력하면 파일 내용을 response에 담아온다.

JSON 파일경로나 JSON 데이터를 넘겨주는 URL을 기재한다.

 

 

json 데이터를 보면 date 이름으로 배열형태로 담겨 있어서 response.data로 했다.

 

$http.get("./data.json").success(

    function(response) {

        $scope.data = response.data;

    }); 

});

             

 

예제의 전체코드이다.

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>AngularJS</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script>
  var app = angular.module('myApp', []);
  app.controller('myCtrl', function($scope, $http) {
    $http.get("./data.json").success(
      function(response) {
        $scope.data = response.data;
      }
    );
  });
</script>
</head>
 
<body>
       <div ng-app="myApp" ng-controller="myCtrl">
              Book List :
              <ul>
                    <li ng-repeat="x in data">{{ x.id+ ', ' + x.name}}</li>
              </ul>
       </div>
       <hr>
</body>
</html>

 

위의 코드에서 사용한 data.json 파일이다.

실제 프로젝트에서는 코드로 데이터를 사용하겠지만 여기서는 예제를 위해 파일로 생성해 두었다.

{
 "data" : [ {
  "id" : "1",
  "name" : "MongoDB"
 }, {
  "id" : "2",
  "name" : "Express"
 }, {
  "id" : "3",
  "name" : "AngularJS"
 }, {
  "id" : "4",
  "name" : "Node.js"
 }, {
  "id" : "5",
  "name" : "jQuery Mobile"
 } ]
}

 

컨트롤러에서 $http 서비스로 받아온 데이터를 아래와 같이 표시한다.




지난번 정렬 필터의 내용을 복습할 겸 해서 "name" 필드로 정렬해 보았다.

<li ng-repeat="x in data  | orderBy:'name'">{{ x.id+ ', ' + x.name}}</li>

728x90

댓글