AngularJS автоматически синхронизирует данные между сервером и клиентом


в документах AngularJS есть что-то, что я не могу найти, или, может быть, я просто отсутствую.

Я создаю веб-приложение с NodeJS и Express в фоновом режиме, и я пытаюсь понять, как он может взаимодействовать с Angular в передней части. В частности, у меня будет API JSON для Angular, чтобы получить информацию. Я хочу, чтобы передний конец всегда был в курсе событий.

мои вопросы:

  • означает ли функция двусторонней привязки данных Угловой ($ресурс или $http) автоматически извлекает данные с сервера каждый n секунды?
  • естественно ли использовать длинный опрос, короткий опрос или websockets?
  • вам нужен JQuery для достижения синхронизации сервер-клиент или все можно сделать с угловым?
  • вы должны добавить дополнительный код, чтобы сделать это поведение случилось? Нужно ли мне использовать $timeout?

каждый пример, который я, кажется, нахожу, включает в себя клиента, извлекающего данные один раз. Не синхронизировать данные с сервером.

1 57

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).