Вы можете использовать ng-repeat
для этого.
Обратите внимание, что если вы хотите отобразить HTML
, вы должны использовать $sce.trustAsHtml
для AngularJS для фактического отображения HTML. Затем вы можете использовать ng-bind-html
в HTML
.
var app = angular.module("Dummy", []);
var DummyController = function($scope, $sce) {
var pageMax = 10;
$scope.paginationItems = [];
for (var i = 0; i < pageMax; i++) {
var item = $sce.trustAsHtml('<a href="#">' + (i + 1) + '</a>');
$scope.paginationItems.push(item);
}
}
app.controller(DummyController, ["$scope, $sce", "DummyController"]);
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />
<div ng-app="Dummy">
<div class="text-center" ng-controller="DummyController">
<ul class="pagination">
<li ng-bind-html="item" ng-repeat='item in paginationItems'></li>
</ul>
</div>
</div>
Вы можете использовать эту функцию:
function getNextAdIndex($aAd) {
$scores = array_map(function ($ad) { return $ad["viewed"] / $ad["rotation"]; }, $aAd);
return array_search(min($scores), $scores);
}
Возвращает индекс в $aAd
, который имеет наименьшее количество просмотров по сравнению с тем, что он в идеале должен иметь (основываясь на проценте вращения) .
$aAd[] = array('viewed' => 0, 'rotation' => 70); // 70%
$aAd[] = array('viewed' => 0, 'rotation' => 30); // 30%
// Provide the next 100 views:
for ($i = 0; $i < 100; $i++) {
$j = getNextAdIndex($aAd);
echo "showing add $j\n"; // Do whatever is needed to "display" an ad here
$aAd[$j]["viewed"]++; // Increase its number of views
}