Я загружаю данные из Firebase, но только каждый секунда времени или около того, данные отображаются в представлении, но также только если я обновляю. Иногда даже когда я обновляю кулак во второй раз. Когда я переключаю представления в приложении, данные вообще не отображаются.Http-запрос не загружается, как только угловой вид загружается
В чем моя ошибка?
.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.apply, чтобы принудительно обновить представление или использовать директиву, чтобы он возвращал некоторое содержимое после выполнения запроса. Любой из этих методов не является чистым решением, так как лучше всего будет использовать метод запросов собственного углового, чтобы он мог переименовать его самостоятельно. – Marcus