2015-12-07 2 views
0

Я работаю над приложением для ведения блогов. Я также хочу сохранить список статей на SqlLite. Мне нужно получить все блоги за один раз. (более 2000) блогов.Как управлять данными в автономном режиме и онлайн в ионном

нижеследующий мой контроллер код.

var promise= userService.getArticles(); 
promise.then(function(data) { 
     $scope.articles = data; 
}, function(error) { 
    console.log('Failed for some reason:' + error); 
}); 

и завод код angular.module ('') starter.controllers

.factory('userService', function($http,$q) { 
    var articleList = []; 


return { 

      getArticles : function() { 
        var deferred = $q.defer(); 
       $http({ 
        url: "https://www.website.com/getallinfo?access_token=94529e5d", 
        data: { starLimit: 0, endLimit: 150,created_date: 0 }, 
        method: 'POST', 
        withCredentials: true, 
       }).success(function (data, status, headers, config) { 
         deferred.resolve(data); 


       }).error(function (err) { 
        deferred.reject(error); // 
       }) 
       return deferred.promise; 
      }, 

    } 

который returing результат.

Мне также нужно сохранить эти данные в sqllite. Также я хочу показать данные как офлайн.

Я не уверен, как это сделать. Незлая помощь.

Благодаря

ответ

2

Большинство онлайн-приложений используют локальное хранилище в качестве кэша и обновления, что если есть соединение доступно.

Самый простой способ сделать это:

  1. Grab статей из локального хранилища и присвоить его переменной $ Scope (это может быть определено)
  2. запрос на статьи, как обычно от server
  3. При успешном обратном вызове перезаписывают локальное хранилище и переназначают переменную области видимости.

код Exampe:

// The article service 

myApp.factory('articles', function($q, $timeout, $window, loremIpsum) { 


    // Initialize by grabbing the articles from the local cache (if any) 

    var items = angular.fromJson($window.localStorage.getItem('myArticles')); 

    // Construct our service 

    var service = { 
    items: items, 
    refresh: function() { 

     // Sync with the server 

     var defer = $q.defer(); 

     // For this demo I'm using a timeout (this also allows for some artificial lag). 
     // Replace this with your $http calls. 

     $timeout(function() { 

     // Here I'm generating some total random items that we're resolving 
     // Also not needed in your app 

     var c = 100, result = []; 
     while (c--) { 
      result.push({ 
      title: loremIpsum.getRandomLine(2), 
      description: loremIpsum.getRandomLine(15) 
      }); 
     } 

     service.items = result; 
     defer.resolve(result); 

     // Store the returned result from the server in the local storage 

     $window.localStorage.setItem('myArticles', angular.toJson(result)); 

     }, 500); 

     return defer.promise; 
    } 
    }; 

    return service; 
}); 

Plunker пример можно найти here.

+0

Может ли у вас использовать образец кода, а также для sggin или перезаписать variabke –

Смежные вопросы