FIREBASE警告:用户回调引发了异常。错误:[$ rootScope:inprog] http://errors.angularjs.org/1.4.7/$rootScope/inprog?p0=%24digest

时间:2015-12-31 12:58:42

标签: angularjs firebase firebase-util

我收到错误,随机,有时会发生,有时则不会。 我无法确定要解决的问题。

有谁知道错误原因或如何预防?

我的代码:

angular.module('VigiApp').controller('FeedsController', ['$scope', 'gettextCatalog', 'FirebaseURL', '$ngBootbox', function($scope, gettextCatalog, FirebaseURL, $ngBootbox) {
    $scope.contents = [];
    isSpinnerBar(false);

    $scope.init = function(){
        isSpinnerBar(true);
        // Get a database reference to our posts
        //auth
        var fbAuth = FirebaseURL.getAuth();
        //Ref
        var norm = new Firebase.util.NormalizedCollection(
                FirebaseURL.child('contents'),
                [FirebaseURL.child('categories'), 'category', 'contents.category_id']
        );
        // get a reference we can use like a normal Firebase instance
        ref = norm.select('contents.category_id', 
                'contents.dt_created', 
                'contents.num_comment', 
                'contents.num_favorite', 
                'contents.text', 
                'contents.photos', 
                'contents.user_id', 
                {key: 'category.name.$value', alias: 'category_name'},{key: "category."+$scope.currentLanguage+".$value", alias: 'category_name_language'},{key: 'category.icon.$value', alias: 'category_icon'}).ref();        
        // Attach an asynchronous callback to read the data at our posts reference
        ref.orderByChild("dt_created").limitToFirst(2).on("value", function(snapshot) {
            console.log(snapshot.val());
            var res = snapshot.val();
            $scope.$apply(function() {
                $scope.contents = res;
                isSpinnerBar(false);
                isButtonActivedFeed();
              });           
        }, function (errorObject) {
            console.log("The read failed: " + errorObject.code);
            isSpinnerBar(false);
        });     
    }

    $scope.share = function(e){
    }
}]);

警告:

FIREBASE WARNING: Exception was thrown by user callback. Error: [$rootScope:inprog] http://errors.angularjs.org/1.4.7/$rootScope/inprog?p0=%24digest
 ....

Attched enter image description here

例外情况: 附上enter image description here =(

1 个答案:

答案 0 :(得分:3)

好的,为帖子道歉,我在谷歌搜索后找到了解决方案。

我正在寻找firebase或firebase-util,但在页面之间导航时我的角度是错误的。

解决方案对我有用:

        var res = snapshot.val();
        $timeout(function(){
        $scope.$apply(function() {
            $scope.contents = res;
            isSpinnerBar(false);
            isButtonActivedFeed();
          });           
        });

解决方案,原因: AngularJS : Prevent error $digest already in progress when calling $scope.$apply()

如果其他人有同样的问题/疑问,我会保留这个问题。