AngularFire手表只有新帖到达时

时间:2016-06-03 20:37:41

标签: angularjs angularfire

我想在新帖子到达时注意我的网络应用用户,而无需刷新页面。我使用firebase和angularfire作为包装器。

这是我的代码:

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

以上代码在新帖子到达时有效,但是,当我刷新页面(或第一次加载页面)时,警报会弹出数百次!如何让它只在页面加载后观看新帖子?感谢您的评论。

1 个答案:

答案 0 :(得分:0)

您可以使用$watch

  

返回初始数组数据时解析的promise   已从数据库下载。承诺解决了   $ firebaseArray。

然后在检索到初始数据时使用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); }); });

例如:

var isTouch = 'ontouchstart' in document.documentElement;
google.maps.event.addListener(map, 'click', function(event) {
if(isTouch)
console.log("Touched");
else 
console.log("Can't touch this");
});