Как управлять данными в автономном режиме и онлайн в ионном

0

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

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

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

и заводской код - угловой.модуль ("стартер.контроллеры")

.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;
            },

    }

который сохраняет результат.

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

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

благодаря

Теги:
ionic-framework
ionic

1 ответ

2

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

Легкий способ сделать это:

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

Код экзамена:

// 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 можно найти здесь.

  • 0
    Можете ли вы предоставить мне пример кода, чтобы sggin или перезаписать variabke

Ещё вопросы

Сообщество Overcoder
Наверх
Меню