Как создать элементы страницы в AngularJS, если я знаю количество страниц?

Эта функция работает как в bash, так и в zsh и обеспечивает ввод / вывод на терминал:

# Prompt for a keypress to continue. Customise prompt with $*
function pause {
  >/dev/tty printf '%s' "${*:-Press any key to continue... }"
  [[ $ZSH_VERSION ]] && read -krs  # Use -u0 to read from STDIN
  [[ $BASH_VERSION ]] && </dev/tty read -rsn1
  printf '\n'
}
export_function pause

Поместите его в .{ba,z}shrc для Великой справедливости!

2
задан Razvan Zamfir 13 July 2018 в 14:00
поделиться

2 ответа

В угловом вы сделаете что-то вроде этого:

angular.module('app', [])
  .controller('Controller', function($scope) {
   $scope.pageMax = 10;
   
   $scope.pages = new Array($scope.pageMax);
  })
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<link href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet" />

<body ng-app="app">
  <div ng-controller="Controller">
    <div class="text-center">
    <h3>Initialized in template:</h3>
      <ul class="pagination">
        <li ng-repeat="n in [].constructor(pageMax) track by $index">
          <a href="#">{{$index+1}}</a>
        </li>
      </ul>
      
      <h3>Initialized in controller:</h3>
      <ul class="pagination">
        <li ng-repeat="n in pages track by $index">
          <a href="#">{{$index+1}}</a>
        </li>
      </ul>
    </div>
  </div>
</body>

2
ответ дан Gaurav Srivastava 17 August 2018 в 12:40
поделиться
  • 1
    В моем скрипте есть переменная pageMax. – Razvan Zamfir 13 July 2018 в 13:56
  • 2
    @RazvanZamfir обновил мой ответ, теперь у вас есть эта переменная в контроллере. – Gaurav Srivastava 13 July 2018 в 13:57
  • 3
    Оно работает. Не могли бы вы дать краткое объяснение кода, чтобы я мог понять его? Благодаря! – Razvan Zamfir 13 July 2018 в 13:59
  • 4
    Есть ли причина использовать [].constructor вместо просто Array? – Ates Goral 13 July 2018 в 14:01
  • 5
    @RazvanZamfir в основном инициализирует массив с 10 пустыми значениями. вы также можете инициализировать контроллер. – Gaurav Srivastava 13 July 2018 в 14:08

Вы можете использовать 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>

2
ответ дан Razvan Zamfir 17 August 2018 в 12:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: