Эквивалент простого "для" (итерации с индексом) C# в Angular - PullRequest
0 голосов
/ 05 апреля 2020

На странице бритвы я могу написать:

 @for (int i = 1; i <= Model.TotPages; i++)
    {
        <div class="pagmenu">
            @if (i == Model.CurPage)
            {
                @Html.ActionLink(i.ToString(), "Index", "Home", new { curPage = i, catId = Model.CatId, discounted = Model.Discounted, search= Model.Search }, new { @class = "btn btn-primary" })
            }
            else
            {
                @Html.ActionLink(i.ToString(), "Index", "Home", new { curPage = i, catId = Model.CatId, discounted = Model.Discounted, search = Model.Search }, new { @class = "btn btn-default" })
            }
        </div>
    }

Что эквивалентно в angular? *ngFor - это эквивалент foreach, а не for, насколько я понимаю.

1 Ответ

1 голос
/ 05 апреля 2020

если Angular, то вы можете перебирать только массивы, хорошо, вы можете создать массив "на лету", используя "repeat", см. это SO

//in ts
n=10;

<div *ngFor="let a of ' '.repeat(n).split('');let i=index">
  {{i}}
</div>

или используя функция для возврата массива

//in .ts
n=10;
getFoolArray(n)
{
    return new Array(n)
}

<div *ngFor="let a of getFoolArray(n);let i=index">
  {{i}}
</div>

Другой вариант - создать повторение директивы, см. этот ответ SO

...