观看 firebaseArray 时获取 child_added 的内容
Get contents of child_added while watching firebaseArray
我有一个简单的私人聊天,但有不同类型的消息,所以当我发送到服务器 json 结构时,我也传递消息类型。
$scope.messages = fireChat.firebaseArray;
$scope.addMessage = function(e) {
//ADD TO FIREBASE
$scope.messages.$add({
uid: $scope.authData.uid,
text: $scope.msg,
timestamp: Firebase.ServerValue.TIMESTAMP,
type: 'msg'
});
$scope.msg = ""; //RESET MESSAGE
};
如您所见,有 属性 'type'.
现在我想查看任何新消息。在文档中有一个 watch API 函数,但它只是 returns record/message 的 ID
。我想获取消息的内容并检查那里有什么 type
然后根据那个 运行 其他 js 函数。
$scope.messages.$watch(function (data) {
console.log("angularfire watch");
console.log(data);
console.log(data.event);
console.log(data.key);
console.log(data.prevChild);
});
以上 return 只有 child_added
-Jp6KZWlyDtDETz8Agpr
和 -Jp6KZWlyDtDETz8ospr
。如你所见,钥匙下面没有尸体
是否有可能获得关键内容?所以我可以做例如
switch (key.type) {
case 'paid':
animate_paid();
}
编辑:
$scope.messages.$watch(function (data) {
console.log("angularfire watch");
console.log(data);
console.log(data.event);
console.log(data.key);
console.log($scope.messages.$getRecord(data.key));
});
上面的代码终于可以运行了
您可以使用 $getRecord 来完成:
console.log($scope.messages.$getRecord(data.key));
您可以在此处查看 api 数组:https://www.firebase.com/docs/web/libraries/angular/guide/synchronized-arrays.html
我有一个简单的私人聊天,但有不同类型的消息,所以当我发送到服务器 json 结构时,我也传递消息类型。
$scope.messages = fireChat.firebaseArray;
$scope.addMessage = function(e) {
//ADD TO FIREBASE
$scope.messages.$add({
uid: $scope.authData.uid,
text: $scope.msg,
timestamp: Firebase.ServerValue.TIMESTAMP,
type: 'msg'
});
$scope.msg = ""; //RESET MESSAGE
};
如您所见,有 属性 'type'.
现在我想查看任何新消息。在文档中有一个 watch API 函数,但它只是 returns record/message 的 ID
。我想获取消息的内容并检查那里有什么 type
然后根据那个 运行 其他 js 函数。
$scope.messages.$watch(function (data) {
console.log("angularfire watch");
console.log(data);
console.log(data.event);
console.log(data.key);
console.log(data.prevChild);
});
以上 return 只有 child_added
-Jp6KZWlyDtDETz8Agpr
和 -Jp6KZWlyDtDETz8ospr
。如你所见,钥匙下面没有尸体
是否有可能获得关键内容?所以我可以做例如
switch (key.type) {
case 'paid':
animate_paid();
}
编辑:
$scope.messages.$watch(function (data) {
console.log("angularfire watch");
console.log(data);
console.log(data.event);
console.log(data.key);
console.log($scope.messages.$getRecord(data.key));
});
上面的代码终于可以运行了
您可以使用 $getRecord 来完成:
console.log($scope.messages.$getRecord(data.key));
您可以在此处查看 api 数组:https://www.firebase.com/docs/web/libraries/angular/guide/synchronized-arrays.html