실제 애플리케이션은 실제 서버와 상호 작용해야 합니다. 모바일 애플리케이션과 새로 등장하는 Chrome 데스크톱 애플리케이션은 예외일 수 있지만, 다른 모든 애플리케이션의 경우 데이터를 클라우드에 유지하려는지 또는 다른 애플리케이션과 실시간 상호 작용을 해야 하는지에 관계없이 가능합니다. , 사용자는 애플리케이션이 서버와 상호 작용할 수 있도록 해야 합니다.
이를 위해 Angular는 $http라는 서비스를 제공합니다. 서버와 더 쉽게 상호 작용할 수 있도록 확장 가능한 추상 메서드 목록을 제공합니다. HTTP, JSONP 및 CORS 방법을 지원합니다. 또한 JSON 형식 취약점 및 XSRF를 방지하기 위한 보안 지원도 포함되어 있습니다. 이를 통해 요청 및 응답 데이터를 쉽게 변환할 수 있으며 간단한 캐싱도 구현할 수 있습니다.
예를 들어 쇼핑 사이트가 메모리에서 가짜 데이터를 얻는 대신 서버에서 제품 정보를 얻도록 하려고 합니다. 서버 측 코드를 작성하는 방법은 이 책의 범위를 벗어납니다. 따라서 /products 경로를 쿼리할 때 JSON 형식으로 제품 목록을 반환하는 서버를 만들었다고 가정해 보겠습니다.
반환된 응답의 예는 다음과 같습니다.
[ { "id": 0, "title": "Paint pots", "description": "Pots full of paint", "price": 3.95 }, { "id": 1, "title": "Polka dots", "description": "Dots with that polka groove", "price": 12.95 }, { "id": 2, "title": "Pebbles", "description": "Just little rocks, really", "price": 6.95 } ...etc... ]
다음과 같은 쿼리 코드를 작성할 수 있습니다.
function ShoppingController($scope, $http) { $http.get('/products').success(function(data, status, headers, config) { $scope.items = data; }); }
그런 다음 템플릿에서 다음과 같이 사용하세요.
<body ng-controller="ShoppingController"> <h1>Shop!</h1> <table> <tr ng-repeat="item in items"> <td>{{item.title}}</td> <td>{{item.description}}</td> <td>{{item.price | currency}}</td> </tr> </table> </div> </body>
앞서 말했듯이 장기적으로 보면 서버와 상호 작용하는 작업을 서비스 프록시로 처리하는 것이 유리할 것입니다. 이 서비스는 여러 컨트롤러에서 공유될 수 있습니다.