AngularJS автоматически синхронизирует данные между сервером и клиентом
в документах AngularJS есть что-то, что я не могу найти, или, может быть, я просто отсутствую.
Я создаю веб-приложение с NodeJS и Express в фоновом режиме, и я пытаюсь понять, как он может взаимодействовать с Angular в передней части. В частности, у меня будет API JSON для Angular, чтобы получить информацию. Я хочу, чтобы передний конец всегда был в курсе событий.
мои вопросы:
- означает ли функция двусторонней привязки данных Угловой ($ресурс или $http) автоматически извлекает данные с сервера каждый n секунды?
- естественно ли использовать длинный опрос, короткий опрос или websockets?
- вам нужен JQuery для достижения синхронизации сервер-клиент или все можно сделать с угловым?
- вы должны добавить дополнительный код, чтобы сделать это поведение случилось? Нужно ли мне использовать $timeout?
каждый пример, который я, кажется, нахожу, включает в себя клиента, извлекающего данные один раз. Не синхронизировать данные с сервером.
1 ответ:
двусторонняя привязка в AngularJS ссылается на модель данных ($scope) и ваше представление (директивы). Например, если данные изменяются в модели, представление будет автоматически обновляться. Аналогично, если пользователь изменяет данные в представлении, ваша модель будет автоматически обновляться.
взаимодействие с веб-службами осуществляется через модуль $ http service. Поэтому, чтобы получить данные из вашего RESTful API, вы должны сделать что-то вроде:
$http.get('/someUrl').success(successCallback);
полная документация для $http находится на сайт AngularJS. Я думаю,что вы найдете его очень похожим на $jQuery.методы ajax. Вы легко настраиваете $http.получить() для краткости-деятельность в области с угловыми долларов обслуживания тайм-аута (в основном обертка для функции setTimeout).
для обновления в реальном времени между клиентом AngularJS и API сервера, вы можете посмотреть в Socket.io. он использует узел.js для создания соединения live socket между браузером и сервером и имеет резервные механизмы (flash, long-polling) для старых браузеров. Существует шаблонный проект на GitHub, который демонстрирует, как настроить AngularJS с помощью Socket.io: https://github.com/btford/angular-socket-io-seed
Подведем Итог:
означает ли функция двусторонней привязки данных угловой ($resource или $http) автоматически извлекает данные с сервера каждые n секунд?
нет, двусторонняя привязка находится между угловыми моделями и видами.
естественно ли использовать длинный опрос, короткий опрос или websockets?
угловой не включает ни один из них по умолчанию. Вы должны установить их сами.
вам нужен JQuery для достижения синхронизации сервер-клиент или все можно сделать с помощью Angular?
$http в широком смысле является угловым эквивалентом $jQuery.ajax
вам нужно добавить дополнительный код, чтобы такое поведение произошло? Я нужно использовать $ timeout?
используйте $timeout для короткого опроса или сверните свое собственное решение для длинного опроса и / или websockets (см. angular-socket-io-seed).