范围在第一次运行函数时不更新

时间:2017-06-12 21:13:15

标签: javascript angularjs

真的在这个问题上摸不着头脑。

我在AngularJS中有一个控制器,其运行一次,然后每5分钟运行一次。该函数从API获取对象并将其设置为$scope.accounts。我需要在html表中将每个键打印成一行。

我的表中的

ng-repeat在第一次运行函数时不打印任何表行,但是在5分钟后运行该函数时正确打印行,并且每次都在此之后。

为什么它第一次不起作用,但仅在它运行5分钟后才会起作用?

这是我的代码:



//portfolioController.js

app.controller('portfolioCtrl', function($scope, $http, portfolioFactory) {

  var getBalances = function() {
    var promise = new Promise(function(resolve, reject) {
      portfolioFactory.getBalances()
        .then((object) => {
          $scope.accounts = object;
          console.log($scope.accounts, 'scope.accounts'); //logging object immediately when page loads
          resolve();

        });
    });
    return promise;
  }

  //update all
  var getAll = function() {

    var date = new Date();
    var hours = date.getHours();
    var minutes = date.getMinutes();

    minutes < 10 ? minutes = '0' + minutes : minutes = minutes;
    console.log('--- executing update ' + hours + ':' + minutes + ' ---');

    getBalances()
      .then(() => $scope.$apply);
  }


  getAll();
  setInterval(function() {
    getAll();
  }, 300000);

});
&#13;
<table>
  <tr ng-repeat="(key, value) in accounts">
    <td>{{key}}</td>
  </tr>
</table>
&#13;
&#13;
&#13;

0 个答案:

没有答案