【发布时间】:2015-04-07 17:01:58
【问题描述】:
我想确保在加载我的应用之前从 firebase 获取数据。我正在使用此代码,但它不起作用:程序永远不会到达代码 deferred.resolve(); 并且 appCtrl 不运行...
有什么想法吗?
appCtrl:
.controller('AppCtrl', function($scope, $ionicModal, $timeout,$firebaseAuth,$state,myWordsListServ) {
$scope.myWordsList = myWordsListServ.contacts;
console.log("myWordsList" , $scope.myWordsList);
})
myWordsListServ:
.factory('myWordsListServ', function($firebase, $q) {
return {
contacts: null,
promiseToHaveMyLists: function() {
var deferred = $q.defer();
var firebaseMainRef = new Firebase("https://myApp.firebaseio.com");
var authData = firebaseMainRef.getAuth();
if(authData){
this.contacts = $firebase(new Firebase("https://myApp.firebaseio.com/users/" + authData.uid));
this.contacts.$on('value', function(loadedData) {
deferred.resolve();
});
}
else{
deferred.resolve();
}
return deferred.promise;
}
};
})
我的 app.js 的一部分:
.config(function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('app', {
url: "/app",
abstract: true,
templateUrl: "templates/menu.html",
controller: 'AppCtrl',
resolve : {
myWordsList : function(myWordsListServ) {
return myWordsListServ.promiseToHaveMyLists();
}
},
})
【问题讨论】:
标签: angularjs firebase angular-ui-router angularfire