什么阻止我的观点在我的" User"之后呈现?服务是否更新了查看所需的信息?
伪代码:
- 用户登录并设置 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;
}
- 在Angular UI-Router中使用$ state.go(' view')我转到以下视图:
醇>
控制器:
.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),视图呈现正确。
有人可以帮助我找到更好的解决方案来实施,并最终帮助我解决这个问题的原因吗?
谢谢!
答案 0 :(得分:1)
您的用户工厂中有一个未定义的authData
。
答案 1 :(得分:1)
仅通过查看这两段代码很难100%确定,但我认为在其他地方调用setUser时不会传递数据。尝试登出并查看丢失的位置。你有一个我们可以看到的这个项目的github回购吗?