gpt4 book ai didi

angularjs - 解决返回 $firebaseArray 时需要先返回 $firebaseObject 服务?

转载 作者:行者123 更新时间:2023-12-01 06:06:21 25 4
gpt4 key购买 nike

我最近发现David East's firebase blog post并且已经开始将我的 $loaded 使用从我的 Controller 转移到我对每个 View 的解析中。出现的一个问题涉及我正在检索带有 firebaseRef 的 $firebaseArray 的情况,其中包含来自另一个 firebase 数据库调用的内容。我对第二部分的引用将是这样的:

var chatRef = firebase.database().ref('messages/'+thisGroup.groupId+'/main');

这是我只能通过解析解开一个 promise 的情况,还是我关闭做这样的事情(ActiveGroup 是一项服务,它返回用户当前选择的组的 $firebaseObject):
.state('tab.chats-main', {
url: '/chats/main',
cache: true,
views: {
'tab-chats': {
templateUrl: 'templates/tab-chatsTopic.html',
controller: 'ChatsTopicCtrl'
}
},
resolve: {
currentAuth: authRequire,
posts: function($firebaseArray, currentAuth, ActiveGroup){
var thisGroup = ActiveGroup(currentAuth.uid);
thisGroup.$loaded().then(function(){
var chatRef = firebase.database().ref('messages/'+thisGroup.groupId+'/main');
return $firebaseArray(chatRef.limitToLast(100)).$loaded();
})
}
}
})

然后这里是我在 Controller 中注入(inject)帖子的地方:
    .controller('ChatsTopicCtrl', function($scope, thisGroup, posts, profile, chatName, chatMessages, currentAuth, ActiveGroup, $cordovaCamera, $ionicScrollDelegate, $ionicModal, $ionicActionSheet, $timeout,$state, moment) {

console.log("what are posts? ",posts); // posts is undefined

提前致谢!

最佳答案

所以我发现了一些可行的方法,但我不确定这是否是最佳做法。通过分别进行每个 firebase 调用(并以正确的顺序),这似乎可以解决问题:

.state('tab.chats-main', {
url: '/chats/main',
cache: true,
views: {
'tab-chats': {
templateUrl: 'templates/tab-chatsTopic.html',
controller: 'ChatsTopicCtrl'
}
},
resolve: {
currentAuth: authRequire,
thisGroup: function(ActiveGroup, currentAuth){
return ActiveGroup(currentAuth.uid).$loaded();
},
posts: function($firebaseArray, thisGroup){
var chatRef = firebase.database().ref('messages/'+thisGroup.groupId+'/main');
return $firebaseArray(chatRef.limitToLast(100)).$loaded();
}
}
})

然后是注入(inject)它的 Controller :
    .controller('ChatsTopicCtrl', function($scope, thisGroup, posts, profile, chatName, chatMessages, currentAuth, ActiveGroup, $cordovaCamera, $ionicScrollDelegate, $ionicModal, $ionicActionSheet, $timeout,$state, moment) {

console.log("what is posts? ",posts); // gives proper result

如果有更好/更推荐的方式来做到这一点,我仍然非常感谢听到它。

关于angularjs - 解决返回 $firebaseArray 时需要先返回 $firebaseObject 服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38512189/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com