Я сделал небольшую программу, которая должна делать выборку данных через API последовательно на основе заданной длины массива. У меня есть кнопка, которая итерации через массив при нажатии.
Вот угловой контроллер:
angular.module('LoadingBarExample', ['chieffancypants.loadingBar',
'ngAnimate'
])
.config(function(cfpLoadingBarProvider) {
cfpLoadingBarProvider.includeSpinner = true;
})
.controller('ExampleCtrl', function($scope, $http, $timeout, cfpLoadingBar) {
$scope.posts = [];
$scope.test = 0;
$scope.section = null;
$scope.subreddit = null;
$scope.subreddits = ['cats', 'pics', 'funny', 'gaming', 'AdviceAnimals',
'aww'
];
var getRandomSubreddit = function() {
// var sub = $scope.subreddits[Math.floor(Math.random() * $scope.subreddits.length)];
if ($scope.test > $scope.subreddits.length - 1) {
$scope.test = 0
}
var sub = $scope.subreddits[$scope.test];
// console.log($scope.subreddits[$scope.test])
$scope.test++;
// ensure we get a new subreddit each time.
if (sub == $scope.subreddit) {
return getRandomSubreddit();
}
return sub;
};
$scope.fetch = function() {
$scope.subreddit = getRandomSubreddit();
$http.jsonp('http://www.reddit.com/r/' + $scope.subreddit + '.json?limit=50&jsonp=JSON_CALLBACK').success(function(data) {
$scope.posts = data.data.children;
});
};
и это HTML:
<a href="#" class="btn btn-primary btn-lg" ng-click="fetch()"><i class="glyphicon glyphicon-play-circle"></i> Start Service <span> (User Arrive)</span></a>
</div>
</div>
<h4 class="loading-text" ng-show="subreddit">Showing 100 results for: <span>/r/{{subreddit}}...</span></h4>
<div ng-repeat="post in posts" class="panel panel-default">
<div class="panel-body media">
<span class="badge pull-right">{{post.data.score}}</span>
<div class="pull-left" ng-if="post.data.thumbnail">
<img class="thumbnail" ng-src="{{post.data.thumbnail}}">
</div>
<div class="">
<div class="">
<a href="{{post.data.url}}">{{post.data.title}}</a>
<p class="meta">by {{post.data.author}}</p>
<p class="meta-comments">{{post.data.num_comments}} comments</p>
</div>
</div>
</div>
</div>
Я хочу нажать кнопку один раз, и выборка должна продолжать отображаться до тех пор, пока длина массива
благодаря
javascript,jquery,arrays,angularjs,recursion,