Firebase阵列未在AngularJS视图中渲染

Firebase Array not Rendering in AngularJS View

本文关键字:视图 AngularJS 阵列 Firebase      更新时间:2023-09-26

在我的"用户"服务更新了查看所需的信息后,是什么阻止了我的视图的呈现?

伪码:

  1. 用户登录后,应设置profile.uid信息。profile.uid后来在我的Firebase路径中用作子项
    .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. 使用$state.go('view')和Angular UI Router,我进入以下视图:

控制器:

.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('facebook:112351)

有人能帮我制定一个更好的解决方案来实施吗?最终,为什么这不起作用?

谢谢!

只看这两段代码很难100%确定,但我认为在其他地方调用setUser时不会传递数据。试着注销它,看看你把它丢在哪里了。你有这个项目的github回购吗?我们可以看看?

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