Реальные приложения должны взаимодействовать с реальными серверами, мобильными приложениями и появляющимися приложениями Chrome Desktop могут быть исключением, но для всех других приложений, независимо от того, хотите ли вы сохранить данные в облаке или взаимодействовать с другими пользователями в режиме реального времени, вам необходимо взаимодействовать с сервером.
Для достижения этого Angular предоставляет услугу под названием $ http. Он предоставляет расширяемый список абстрактных методов для облегчения взаимодействия с сервером. Он поддерживает методы HTTP, JSONP и CORS. Он также включает в себя поддержку безопасности, чтобы избежать уязвимости в формате JSON и XSRF. Это позволяет легко преобразовать данные запроса и ответа и даже реализует простое кэширование.
Например, мы намерены, чтобы сайты покупок получали информацию о продукте с серверов вместо фальсифицированных данных из памяти. Как написать код сервера выходит за рамки этой книги, поэтому давайте просто представлюсь, что, например, мы создали сервер, который возвращает список продуктов в формате JSON при запросе пути /продуктов.
Возвращенный пример ответа заключается в следующем:
[{«id»: 0, «title»: «Paint Pots», «Описание»: «горшки, полные краски», «цена»: 3,95}, {«id»: 1, «название»: «Dots», «Описание»: «Готовы с этой точкой в горошек», «Прайс»: 12,95}, {«ID»: 2 -й титул «»: «PCEBLE», «Little», «Little», «Little», «Little», «Little», «Little», «Little», «Little», «Little», «Little», «Little», «Little», «Little», «Little»: «Little»: «Little»: «Little»: «Просто». Действительно "," цена ": 6,95} ... и т. Д.]Мы можем написать код запроса таким образом:
Функция ShophingController ($ scope, $ http) {$ http.get ('/products'). успех (функция (данные, состояние, заголовки, config) {$ scope.items = data;});}Затем используйте его в шаблоне:
<body ng-controller = "ShoppingController"> <h1> shop! </h1> <table> <tr ng-repeat = "элемент в элементах"> <td> {{item.title}} </td> <td> {{item.description}} </td> <td> {{item.price. валюта}} </td> </tr> </table> </div> </body>Как мы уже говорили, в долгосрочной перспективе, для нас полезно позволить прокси -серверу взаимодействия с сервером, и эта служба может быть использована несколькими контроллерами.