【问题标题】:How to retrieve user's follower's profiles using angularfire如何使用 angularfire 检索用户的关注者个人资料
【发布时间】:2015-05-14 09:57:31
【问题描述】:

我正在尝试检索用户的关注者配置文件并将它们存储在 $scope.object 中,以便我可以在 ng-repeat 中使用。 我的 firebase 结构是这样的,

users
  - user_id:
       - name:
       -followers: 
           - follower: user_id1
           - follower: user_id2...
       -following :

现在我可以从关注者部分获取 user_ids 列表,我想要的是从 users 部分检索他们的个人资料/详细信息。 这是我试过的,

 $scope.followers = [];
$scope.profile.$loaded().then(function() {
           $scope.profile.followers);   
          angular.forEach()
           angular.forEach($scope.profile.followers, function(value, key) {

                var followerID = value.follower;
                userProfile = Profile(followerID);  // retrieve firebaseobject profile from factory
                 $scope.followers.push(angular.extend({}, userProfile));
                  console.log($scope.followers);

           });
         }); console.log($scope.followers);

不,当我在控制台中看到输出时,我可以在 forEach 循环内看到他们的个人资料/详细信息,但 $scope.followers 在循环外是空的。 我不确定它是否是 firebase 和/或 angularJS 的最佳实践。有人可以指出我正确的方向吗?

【问题讨论】:

    标签: angularjs firebase ionic angularfire


    【解决方案1】:

    您正在执行异步$scope.profile.$loaded(),它正在返回承诺。并且您正在尝试在 ajax 成功之外访问 $scope.followers 对象,该对象将随时 []。原因是对象在成功函数forEach 循环中填充。

    您需要将console.log($scope.followers); 放入.then 函数中,以便您可以得到followers

    代码

    $scope.followers = [];
    $scope.profile.$loaded().then(function() {
        angular.forEach($scope.profile.followers,
            function(value, key) {
    
                var followerID = value.follower;
                userProfile = Profile(followerID); // retrieve firebaseobject profile from factory
                $scope.followers.push(angular.extend({}, userProfile));
                console.log($scope.followers);
    
            }); 
        //should inside then to get value which is comming asynchronusly
        console.log($scope.followers);
    });
    

    【讨论】:

    • 感谢您的快速回复,
    • 感谢@pankajparkar 的快速回复,但是我想要的是,1)我需要使用$scope.followers' in my html's ng-repeat` 这就是为什么我在.then 之外尝试了console.log 2)在你的解决方案中,当我打印userProfile 时,它会显示正确的值,即该特定用户的姓名、关注者等的个人资料详细信息。但后来我尝试将它添加到 $scope.followers 并打印它只显示它们的 ID 与 var followerID 相同。这不是我想要的,我想要 $scope.follower 提供个人资料的详细信息列表,而不仅仅是他们的 ID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-06
    • 2015-01-29
    • 2014-02-15
    • 2011-06-04
    相关资源
    最近更新 更多