真的在这个问题上摸不着头脑。
我在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;