Предположим, у меня есть массив 10000
длины. В то время как ng-repeat
повторяет и показывает содержимое списка, между тем мне нужно показать сообщение о прогрессе, показывающее, сколько элементов создано.
Короче: показать прогресс сообщение, показывающее, насколько достигла нг-повтор
То, что я сделал
Вот код, который я сделал (не работает).
var app = angular.module('app', []);
app.controller('appCtrl', function ($scope, $timeout) {
$scope.list = []; /// list that is going to be repeated
$scope.count = 10000; /// no of items in the list
/// filling the list
var templist = [];
for (var index = 0; index < $scope.count; index++) {
templist.push(index);
}
$scope.list = templist;
/// default msg of progress
var progress = '0/' + $scope.count;
/// function will be called when the the list will be getting rendered
$scope.reportProgress = function (i) {
console.log(i);
setTimeout(function() {
/// updating the progress message
progress = i + "/" + $scope.count;
$("#prog").html(progress);
}, 1);
}
})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="http://ajax.googleapis.com/ajax/libs/angularjs/1.5.8/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.0/jquery.min.js"></script>
</head>
<body>
<div ng-app="app" ng-controller="appCtrl">
progress: <span id="prog"></span>
<div ng-repeat="i in list track by $index">
{{i}} {{reportProgress($index)}}
<hr/>
</div>
</div>
</body>
</html>
Можете ли вы попробовать использовать ng-bind для обновления прогресса, вместо ручной модификации DOM? И что вы имеете в виду, что он не работает? Не обновляется или вообще не обновляется? – Vamsi
Редактировать: Я создал скрипку, которая обновляет прогресс, используя ng-bind. Это ссылка - http://jsfiddle.net/Vamshhi/3mjpyq0s/ – Vamsi
@ Vamsi большое спасибо за усилия. Я запустил скрипку и обнаружил, что 'ng-repeat' закончен, но счетчик все еще показывает текущий счетчик вниз. ** Мне нужно показать прогресс ng-repeat. если ng-repeat финиширован, тогда прогресс должен показывать завершенное состояние, например. 10000/10000 ** –