android - 如何自动刷新 ionic 列表

标签 android angularjs ionic-framework

我正在尝试自动刷新使用 Ionic 1 显示的列表。我找到了这支笔,但无法理解它是如何工作的。

https://codepen.io/calendee/pen/GkgsD?editors=1111

下面的代码给出了我要刷新的列表

<ion-content ng-controller="myController" ng-init="init()">
          <div class="list">
             <a ng-repeat="entry in entries" class="item" ng-click="browse(entry.link)">
               <b>{{entry.title}}</b><br>
               <span ng-bind-html="entry.contentSnippet"></span>

             </a>

          </div>
      </ion-content>

$http.get("http://ajax.googleapis.com/ajax/services/feed/load", { params: { "v": "1.0", "q": "https://community.woltlab.com/board-feed/?l=2", "num": "100" } })

app.js

var rssApp = angular.module('myApp1', ['ionic'])

.run(function($ionicPlatform) {
  $ionicPlatform.ready(function() {
    if(window.cordova && window.cordova.plugins.Keyboard) {
      // Hide the accessory bar by default (remove this to show the accessory bar above the keyboard
      // for form inputs)
      cordova.plugins.Keyboard.hideKeyboardAccessoryBar(true);

      // Don't remove this line unless you know what you are doing. It stops the viewport
      // from snapping when text inputs are focused. Ionic handles this internally for
      // a much nicer keyboard experience.
      cordova.plugins.Keyboard.disableScroll(true);
    }
    if(window.StatusBar) {
      StatusBar.styleDefault();
    }
  });
})

rssApp.controller("myController", function($http, $scope) {

    $scope.init = function() {
        $http.get("http://ajax.googleapis.com/ajax/services/feed/load", { params: { "v": "1.0", "q": "https://community.woltlab.com/board-feed/?l=2", "num": "100" } })
            .success(function(data) {
                $scope.rssTitle = data.responseData.feed.title;
                $scope.rssUrl = data.responseData.feed.feedUrl;
                $scope.rssSiteUrl = data.responseData.feed.link;
                $scope.entries = data.responseData.feed.entries;
                window.localStorage["entries"] = JSON.stringify(data.responseData.feed.entries);
            })
            .error(function(data) {
                console.log("ERROR: " + data);
                if(window.localStorage["entries"] !== undefined) {
                    $scope.entries = JSON.parse(window.localStorage["entries"]);
                }
            });
    }

        $scope.browse = function(v) {
        window.open(v, "_blank", "location=no");
    } 
});

最佳答案

您需要在一段时间后刷新数据。Angular 有 $interval 服务,它将在指定时间后回调函数。这里是 plunker https://plnkr.co/edit/KB9das?p=info

$interval(function() {
reloadNumber++;
console.log('refreshed nth times ', reloadNumber)
$scope.getPosts();

}, 5000);

var app = angular.module('plunker', []);

app.controller('MainCtrl', function($scope, $http, $interval) {
  $scope.name = 'World';


  var root = 'https://jsonplaceholder.typicode.com';
  var reloadNumber = 0;
  $scope.getPosts = function() {
    $http({
      url: root + '/posts',
      method: 'GET'
    }).then(function(data) {
      $scope.posts = data.data;
      console.log(data);
    });
  }
  $scope.getPosts();
  $interval(function() {
    reloadNumber++;
    console.log('refreshed nth times ', reloadNumber)
    $scope.getPosts();

  }, 5000);

});
<!DOCTYPE html>
<html ng-app="plunker">

<head>
  <meta charset="utf-8" />
  <title>AngularJS Plunker</title>
  <link data-require="bootstrap-css@3.3.6" data-semver="3.3.6" rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.css" />
  <script>
    document.write('<base href="' + document.location + '" />');
  </script>
  <link rel="stylesheet" href="style.css" />
  <script data-require="angular.js@1.4.x" src="https://code.angularjs.org/1.4.9/angular.js" data-semver="1.4.9"></script>
  <script src="app.js"></script>
</head>

<body ng-controller="MainCtrl">
  <p>Hello {{name}}!</p>
  
  <table class="table">
    <thead>
    <th>
      USERID

    </th>
    <th>
      TITLE

    </th>
    <th>
      BODY

    </th>
    </thead>
    <tr ng-repeat="post in posts">
      {
      <td>{{post.userId}}

      </td>
      <td>{{post.title}}</td>
      <td>{{post.body}}</td>
    </tr>
  </table>
</body>

</html>

https://plnkr.co/edit/GgHtCQ?p=preview

关于android - 如何自动刷新 ionic 列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38171326/

相关文章:

android - 内部 SD 卡和内部存储之间的区别。

android - 任何人都可以向我解释这些代码吗?创建自定义布局控件

javascript - 从数据库中获取数据并在 AngularJS 的 ng-repeat 中使用它

android - Ionic 应用程序未在 Android 设备上运行

google-maps - 使用 Ionic 和 Google map ,我如何将 map 标记移动到新位置的动画?

android - 未提供 BouncycaSTLe 加密算法

android - 如何设置 MultiAutoCompleteTextView 的列表分隔符

javascript - 针对 Angular ng-show 和 ng-hide 的类

javascript - 如何在 promise angularjs 中访问数据

javascript - ionic 改变位置不起作用