Angularjs Firebase加载$scope视图不输入';t载荷
我在Firebase中有一个加载问题。当我打开视图时,我想显示一个图像列表,但在我返回之前什么也没有发生(有一个闪光灯,我可以看到我的照片列表)。它正在工作,但没有显示在开幕式上Angularjs Firebase加载$scope视图不输入';t载荷,angularjs,firebase,Angularjs,Firebase,我在Firebase中有一个加载问题。当我打开视图时,我想显示一个图像列表,但在我返回之前什么也没有发生(有一个闪光灯,我可以看到我的照片列表)。它正在工作,但没有显示在开幕式上 请问我错过了什么 以下是我的控制器视图的开头: 'Use Strict'; angular.module('App').controller('valider_photosController', function($scope, $state, $localStorage, Popup, Firebase, $fir
请问我错过了什么 以下是我的控制器视图的开头:
'Use Strict';
angular.module('App').controller('valider_photosController', function($scope, $state, $localStorage, Popup, Firebase, $firebaseObject, $ionicHistory, $ionicPopup, $ionicModal, $cordovaCamera) {
$scope.imagestab = [];
var ref_logements = firebase.database().ref('logements');
var ref_images = firebase.database().ref('images');
ref_logements.child(id_logement).child('images').on('child_added', added);
function added(idxSnap, prevId){
ref_images.child(idxSnap.key).once('value', function(datasnap){
var bidule = datasnap.val();
bidule['key'] = datasnap.key;
$scope.imagestab.push(bidule);
console.log('La valeur'+datasnap.key+'donne '+datasnap.val());
});
};
});
由于firebase使用异步调用,所以当firebase使用您的数据响应时,角度循环已经完成,您将不会更新范围。您可以使用
$scope.$apply()强制它代码>
有一个集成angular和firebase的工具,您不必关心诸如应用范围之类的事情。它叫。我完全建议您开始在应用程序中使用它
使用angularfire,您只需使用
$scope.bidule = $firebaseObject(ref_images.child(idxSnap.key));
或
由于firebase使用异步调用,所以当firebase使用您的数据响应时,角度循环已经完成,您将不会更新范围。您可以使用$scope.$apply()强制它代码>
有一个集成angular和firebase的工具,您不必关心诸如应用范围之类的事情。它叫。我完全建议您开始在应用程序中使用它
使用angularfire,您只需使用
$scope.bidule = $firebaseObject(ref_images.child(idxSnap.key));
或
我创建了一个工厂
.factory('Firebase', function ($firebaseArray, $firebaseObject) {
var ref = firebase.database().ref();
return {
all: function (section) {
var data = $firebaseArray(ref.child(section));
return data;
},
getById: function (section, id) {
var data = $firebaseObject(ref.child(section).child(id));
return data;
},
get: function (section, field, value) {
var data = $firebaseArray(ref.child(section).orderByChild(field).equalTo(value));
return data;
}
};
})
然后在我的控制器中,我像你说的那样替换:
var ref_logements = firebase.database().ref('logements');
var ref_images = firebase.database().ref('images');
ref_logements.child(index2).child('images').on('child_added', added);
function added(idxSnap, prevId) {
var monimage = Firebase.getById('images', idxSnap.key);
$scope.imagestab.push(monimage);
};
它就像一个符咒!再次感谢:)我创建了一个工厂
.factory('Firebase', function ($firebaseArray, $firebaseObject) {
var ref = firebase.database().ref();
return {
all: function (section) {
var data = $firebaseArray(ref.child(section));
return data;
},
getById: function (section, id) {
var data = $firebaseObject(ref.child(section).child(id));
return data;
},
get: function (section, field, value) {
var data = $firebaseArray(ref.child(section).orderByChild(field).equalTo(value));
return data;
}
};
})
然后在我的控制器中,我像你说的那样替换:
var ref_logements = firebase.database().ref('logements');
var ref_images = firebase.database().ref('images');
ref_logements.child(index2).child('images').on('child_added', added);
function added(idxSnap, prevId) {
var monimage = Firebase.getById('images', idxSnap.key);
$scope.imagestab.push(monimage);
};
它就像一个符咒!再次感谢:)你说得对!Angularfire非常适合这个谢谢你。。。再说一遍:)你说得对!Angularfire非常适合这个谢谢你。。。再次:)Whouu,我真的很想感谢@adolfosrs,因为我用angularFire更改了我应用程序中的所有引用,现在非常快速和干净。Whouu,我真的很想感谢@adolfosrs,因为我用angularFire更改了我应用程序中的所有引用,现在非常快速和干净。