【发布时间】:2017-01-21 01:52:04
【问题描述】:
我的 Angular 应用程序中有以下功能
$scope.retrieveProjectData = function() {
$scope.projectNumberNoChange = false;
// Only retrieve Data if the ProjectNumber changed
if (currentlySelectedProjectNumber != $scope.feedback.projectNumber.content) {
currentlySelectedProjectNumber = $scope.feedback.projectNumber.content;
// Go to database-reference based on the projectNumber
var projectsRef = firebaseDatabaseRef.child("projects");
var currentChild = projectsRef.child(currentlySelectedProjectNumber);
// retrieve data once and fill $scope.feedback
currentChild.once("value",
// If the project is found
function (dataSnapshot) {
// Fill selectedProject and hand over to writeDataFromSelectedProject()
var selectedProject = dataSnapshot.val();
// Fill $scope.feedback
writeDataFromSelectedProject(selectedProject);
},
// If no data is found
function () {
console.log("No data found");
});
}
// If the projectNumber didn't change, the projectNumberNoChangeMessage will be shown
else {
$scope.projectNumberNoChange = true;
}
};
用户可以加载一些关于他的项目编号的数据(例如:姓名、电子邮件、电话),以便用户更快地填写表格。
在部分:
currentChild.once("value",
// If the project is found
function (dataSnapshot) {
// Fill selectedProject and hand over to writeDataFromSelectedProject()
var selectedProject = dataSnapshot.val();
// Fill $scope.feedback
writeDataFromSelectedProject(selectedProject);
},
// If no data is found
function () {
console.log("No data found");
});
即使没有找到 projectNumber,也只会调用第一个回调函数。如何使用in the docs 中描述的“failureCallbackOrContext”?
感谢您抽出宝贵时间!
【问题讨论】:
-
根据文档,我认为错误回调是在发生错误时调用,如果您的客户端没有读取数据的权限,则更准确。此回调将传递一个错误对象,指示失败发生的原因。否则,如果您可以阅读但您的查询没有返回任何对象,则不会被视为失败。
标签: angularjs firebase firebase-realtime-database