Angular不更新包含最新数据的视图?

时间:2015-06-22 15:54:52

标签: angularjs

我是角色新手,在刷新页面时(移位+刷新)很难弄清楚如何从数据库中提取最新数据。数据库中存在三条记录,这些记录被拉出并显示我的意图,但我通过heidisql手动添加了三条记录,然后刷新页面,它仍然只显示原始三条记录。

我可以采取哪些措施来解决这种情况?我想确保它始终显示数据库中存在的记录。

我只包含了相关的代码。如果您需要了解更多信息,请告诉我们。

注意:等待一个小时左右后,它最终将获取新数据,但如果我添加另一个数据,问题仍然存在。我希望它是实时的。

//Contents of app.js////////////////////////////////////////////////////////

var app = angular.module('unitTrackerApp', ['ngAnimate','ngCookies','ngResource','ngRoute','ngSanitize','ngTouch', 'xeditable', 'ui.bootstrap', 'httpPostFix']);
      app.config(function ($routeProvider) {
        $routeProvider
          .when('/', {
            templateUrl: 'views/main.html',
            controller: 'MainCtrl'
          })
          .otherwise({
            redirectTo: '/'
          });
      });

      app.factory('myService', function($http, $q) {
      var deffered = $q.defer();
      var data = [];  
      var myService = {};

      myService.async = function() {
        $http.get('myphpfile')
        .success(function (d) {
          data = d;
          deffered.resolve();
        });
        return deffered.promise;
      };
      myService.data = function() { return data; };

      return myService;
    });

//Contents of main.js://///////////////////////////////////////////////////

angular.module('unitTrackerApp')
  .controller('MainCtrl', function (myService, $scope, $filter, $http) {
    $scope.sortType = 'name';
    $scope.sortReverse = false;
    $scope.searchUnit = '';
    var unitObj = new Array();

    getUnits();

   function getUnits(){
     myService.async().then(function(){
      var data = myService.data();
      console.log('GET Call');
      processData(data, unitObj);
    });
   } 

    function processData(data, unitObj) {
      angular.forEach(data, function(obj, index) {
          var stockNum;
          if (obj.consign_flag === '1') {
              stockNum = obj.unit_num += 'C';
          } else {
              stockNum = obj.unit_num;
          }
          unitObj[index] = {
              id: obj.id,
              dateAdded: new Date(obj.dateAdded),
              unitCondition: obj.unitCondition,
              make: obj.make,
              model: obj.model,
              unit_num: stockNum,
              serial_num: obj.serial_num,
              description: obj.description,
              gl_num: obj.gl_num,
              trade: obj.trade,
              invoice_posted: obj.invoice_posted,
              notes: obj.notes
          };
      }, unitObj);

      $scope.units = unitObj;
      console.log($scope.units);
    }

  });

通过编辑.htaccess

解决
<IfModule mod_headers.c>
 <FilesMatch "\.(php)$">
  Header set Cache-Control "max-age=0, no-cache, no-store, must-revalidate"
  Header set Expires "Thu, 1 Jan 2015 05:00:00 GMT"
 </FilesMatch>
</IfModule>

0 个答案:

没有答案