我正在构建 firebase Angular 应用程序:

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; 
        }]); 

正如我在评论中所写,我想在运行完成后运行依赖代码,但不确定如何实现这一点?

这段代码中有什么你不确定的吗?请问。谢谢

请您参考如下方法:


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!