Fireular数组在AngularJS视图中无法渲染

时间:2016-04-29 23:54:08

标签: javascript angularjs firebase angularfire

什么阻止我的观点在我的" User"之后呈现?服务是否更新了查看所需的信息?

伪代码:

  
      
  1. 用户登录并设置 profile.uid 信息。 profile.uid 稍后将用作Firebase路径中的子项。
  2.   
    .factory('User', function (FirebaseUrl, $firebaseArray) {
        var o = {};

        o.setUser = function(authData) {
             o.profile.uid = authData.uid;
        }
        o.getProfile = function() {
            return o.profile;
        }
        return o;
    }
  
      
  1. 在Angular UI-Router中使用$ state.go(' view')我转到以下视图:
  2.   

控制器:

.controller('viewCtrl', function ($scope, User, $firebaseArray, FirebaseUrl) {

    var profile = User.getProfile();

    //if I hardcore "facebook:213032130516" in the .child(), everything renders correctly...

    var messagesRef = new Firebase(FirebaseUrl + 'user_meta/').child(profile.uid);
    var query = messagesRef.orderByChild("timestamp").limitToLast(5);

    $scope.list = $firebaseArray(query);
}

HTML:

<div ng-repeat="dog in list">
     <h2> {{dog.key}}</h2>
</div>

目前看来,视图无法渲染。没有记录错误,只是视图为空。根据控制器代码中的注释,当我对 .child(profile.uid)进行硬编码时,它变为 .child(&#39; facebook:112351),视图呈现正确。

有人可以帮助我找到更好的解决方案来实施,并最终帮助我解决这个问题的原因吗?

谢谢!

2 个答案:

答案 0 :(得分:1)

您的用户工厂中有一个未定义的authData

答案 1 :(得分:1)

仅通过查看这两段代码很难100%确定,但我认为在其他地方调用setUser时不会传递数据。尝试登出并查看丢失的位置。你有一个我们可以看到的这个项目的github回购吗?