Я загружаю данные из Firebase, но только каждое время secend или около того, данные отображаются в представлении, но также только если я обновляюсь. Иногда даже когда я обновляю кулак во второй раз. Когда я переключаю представления в приложении, данные вообще не отображаются.
Какая моя ошибка?
.controller('CatsCtrl', function($scope, $state, $http) {
$scope.init = function() {
var ref = firebase.database().ref("Entries");
ref.once("value")
.then(function(snapshot) {
$scope.tmp = snapshot.val();
$scope.data = $scope.tmp.kategorienamen
});
}
})
HTML
<ion-view ng-init="init()">
<ion-header-bar align-title="center" class="bar-top no-bgColor">
<h1 class="title-top">Kategorien</h1>
</ion-header-bar>
<ion-content overflow-scroll="true" class="has-header has-footer bg" scroll="true">
<div ng-repeat="cat in data" class="animated lightSpeedIn">
<a nav-transition="none"><div ng-style="{'background': 'url(' + cat.bgurl + ')','background-repeat': 'no-repeat','background-size': 'cover','display': 'block','width': '100%','height': '25vh' }" class="bgcat center">
<div class="inner">
<h1>{{cat}}</h1>
<h4>{{}}</h4>
</div>
</div></a>
</div>
</ion-content>
Есть много способов кошки кошки, но вот один, и вы должны прочитать о других из них
$scope.data = ref.once("value");
Изменение: Как было предложено.once возвращает обещание уже https://www.firebase.com/docs/web/api/query/once.html
ref.once()
возвращает обещание, поэтому правильной формой является $scope.data = ref.once("value");
;