如何显示离子加载,直到本地存储填充在小袋中

时间:2016-06-17 09:35:08

标签: ionic-framework pouchdb

我使用pouchDB将服务用于在本地存储中存储数据。我希望显示离子加载,直到数据下载并存储在本地。现在我使用了超时,这对我来说不是一个选择。

我的服务

function populateLocaldb() {
        var count; 
        _localdb.info().then(function(d){
                    console.log(d.doc_count)
                    count = d.doc_count;

            if(count===0) {
                populateData1();
                populateData2();
                populateData3();
            } else {

            }           
        });
    }
function populateChapter() {
        $http.get('http://....').success(function(data) {
                    //console.log(data)
                    var values= data;
                    for(var i=0; i<values.length; i++) {               
                        var value= {
                                _id: values[i].ID,        
                                title: chapters[i].Title
                            }
                                _localdb.put(value, function callback(err, result) {
                                    if (!err) {
                                      console.log('Successfully posted a value!');
                                    }
                                  });

                    }
                })
    }

控制器

dbService.getAllinfo().then(function(data) {
    if(data == ""){
      //do nothing
      //alert(" null Alert hello")
      console.log(data)
      $ionicLoading.show({
        content: 'Loading',
        animation: 'fade-in',
        showBackdrop: true,
        maxWidth: 200,
        showDelay: 0
      }).then(function() {
        dbService.populateLocaldb();
      });
    } else {
      //do nothing
    }
  })

  $timeout(function () {
    $ionicLoading.hide();
  }, 50000); 

1 个答案:

答案 0 :(得分:1)

看起来您可能需要在PouchDB回调中调用$scope.$apply()。另外,另一个提示:不是在put()s内部执行多个forEach(),而是在PouchDB中执行单个bulkDocs()操作的效率更高。