AngularFire следит за тем, чтобы пришла только новая почта

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

Вот мой код:

var query = Refs.getDeptRef("IT").orderByChild("timestamp").limitToLast(25);    
var talks = $firebaseArray(query);
    talks.$watch(function (e) {
                alert('new post arrived');
            });

Приведенный выше код работает, когда приходит новое сообщение, однако, когда я обновляю страницу (или при первой загрузке страницы), предупреждение появляется сотни раз! Как сделать так, чтобы новые сообщения смотрели только после загрузки страницы? Спасибо за ваши Коментарии.


person George Huang    schedule 03.06.2016    source источник


Ответы (1)


Вы можете использовать $loaded():

Возвращает обещание, которое выполняется, когда исходные данные массива были загружены из базы данных. Обещание преобразуется в $ firebaseArray.

Затем используйте $watch, когда исходные данные были получены.

Например:

var query  = Refs.getDeptRef("IT").orderByChild("timestamp").limitToLast(25);

var talks = $firebaseArray(query);

talks.$loaded().then(function(initialData) {

  console.log(initialData);

  talks.$watch(function(data) {

    console.log(data);
  });
});
person tasseKATT    schedule 08.06.2016