列出 refresh/reload 个模板

List refresh/reload template

我是 ionic 的新手,面临以下问题:我必须在 1 分钟和 1 分钟内加载和重新加载我的模板,第一次没问题,但是当从服务器获取记录的功能是再次调用,它不会清理模板,只是再次添加记录,所以如果我在服务器上只有一条记录,它会在第一分钟显示两条,第二分钟显示三条,然后依次。

我已经尝试过:cache=false、window.reload、state.reload、state.go 和许多其他尝试但没有给出我需要的结果,因为我只需要列表被替换而不是添加。 我的代码:

list = function () {
$http.post(G.URL + 'page.jsp')
    .then(function (response) {
        $scope.total = response.data.records.length;
        $scope.items = response.data.records;
        $scope.counter = 1;
    }, function (error) { $scope.items = "Nothing"; });}

$interval(function () {
$scope.counter += 1;
if ($scope.counter > 59) {
    $scope.counter = 1;
    list();
    //$ionicHistory.clearCache([$state.current.name]).then(function () { $state.reload(); });    } }, 1000);

提前致谢

发生的一件事是您没有看到更新,因为您没有消化新范围。 $scope.$apply() 和 $timeout() 运行 一个摘要循环,以便范围可以刷新并显示新值。 $http 调用需要时间 return 到客户端,如果您使用延迟值更新范围,您应该 运行 一个摘要周期。我也清理了你的代码。

.controller('Ctrl', function($scope, G, $interval, $http, $timeout) {
  // always initialize your scope variables
  angular.extend($scope, {
    total: 0,
    items: []
  });

 var list = function () {
    $http.post(G.URL + 'page.jsp')
    .then(function (response) {
      angular.extend($scope, {
        total: response.data.records.length,
        items: response.data.records
      });
      $timeout(); // this is used to reload scope with new delayed variables
    }, function (err) { 
      console.error(JSON.stringify(err)); 
    });
  };

  // call list every 1000 milliseconds * 60 = 1 minute
  $interval(list, 1000 * 60);

  // call list on page load so you don't wait a minute
  list();
});