如何运行Firebase和Anguarjs Promises,如$loaded(),然后从依赖函数中获取值
How to run Firebase and Angualrjs Promises such as $loaded() and then to get values from dependant functions
我正在构建火球角应用程序:
var myApp = angular.module('appStart',[]);
myApp.controller('MyController', function($scope,$firebase,,MyFactory){
//this is returning undefined as this point
//How can i pass angualrjs promises so that it returns values once factory finish runnig all operations
var returnData = MyFactory.getUsersProfile(userId);
});
myApp.factory('MyFactory', ['$firebase', function($firebase){
var factory = {};
factory.getUsersProfile = function(userId){
var firebaseRef = new Firebase("https://xxx.firebaseio.com/userprofile").child(userId);
//retrive the data
firebaseRef.on('value', function (snapshot) {
console.log(snapshot.val());
var data = snapshot.val();
if (data){
//Here I want to call another function and get and return values once called function finish running
var data = factory.getUsersBetsEventsDetails(data);
return data;
}else{
console.log('return nothing');
}
}, function (errorObject) {
console.log('The read failed: ' + errorObject.code);
});
}
factory.getUsersBetsEventsDetails = function(usersProfileData){
var firebaseBetsRef = new Firebase("https://xxx.firebaseio.com/e");
var userE = [];
angular.forEach(usersProfileData, function(usersProfileData){
console.log('getUsersBets',usersProfileData);
var firebaseEData = firebaseBetsRef.child(usersProfileData.e_id);
//retrive the data
firebaseE.on('value', function (snapshot) {
console.log(snapshot.val());
userE.push(snapshot.val());
console.log('userE',userE);
}, function (errorObject) {
console.log('The read failed: ' + errorObject.code);
});
//this is the values controller should get
retuen userE;
});
}
return factory;
}]);
正如我在评论中所写的那样,我希望在完成运行后运行依赖代码,但不确定如何实现这一点?
你在这段代码中有什么不确定的吗?请问。感谢
我最终使用了回调:如何在firebase中获得同步数据?和http://recurial.com/programming/understanding-callback-functions-in-javascript/
相关文章:
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- 在自定义mean.io包中使用angular-chart.js作为依赖项
- Javascript运行php文件,然后下载文件
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 弹出窗口出现,然后退出
- 如何在JQuery函数中定义一个值,然后调用另一个函数并使用该值
- 为什么Airbnb风格指南说不鼓励依赖函数名称推断
- 将值输入到对象,然后该对象推送到数组
- 如何临时暂停浏览器渲染,然后恢复整个页面
- JS:检查URL中的参数,然后迭代一个参数为var的函数
- 将依赖外部库的UMD模块与browserfy捆绑在一起
- 如何将本地依赖项添加到npm项目中
- 滚动然后捕捉到顶部而不是取消捕捉
- 从依赖于下拉菜单的文本框中获取值,然后添加值
- 如何只运行一个函数一次,然后运行另一个依赖于相同元素的函数
- RequireJS - 先初始化一个依赖模块,然后再加载其他模块
- 如何运行Firebase和Anguarjs Promises,如$loaded(),然后从依赖函数中获取值
- 如何同步声明JS对象,然后用依赖于并发操作的数据编辑对象的属性
- 确定正在使用的浏览器,然后为依赖于该浏览器的类设置样式
- jQuery1.9将html附加到页面中,然后是一个脚本,两者都依赖于文档准备