Как разделить данные, напечатанные с помощью ngfor, на 3 столбца в угловых? - PullRequest
0 голосов
/ 07 января 2019

Данные

const arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];

Я хочу разделить эти данные на 3 столбца, и хочу, чтобы они выглядели следующим образом:

<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
    ...
    <li>10</li>
</ul>
<ul>
    <li>11</li>
    <li>12</li>
    <li>13</li>
    ...
    <li>20</li>
</ul>
<ul>
    <li>21</li>
    <li>22</li>
    <li>23</li>
    ...
    <li>30</li>
</ul>

Как разделить данные при использовании ngfor?

<ul *ngFor="let item of arr">
    <li>{{item}}</li>
</ul>

Ответы [ 4 ]

0 голосов
/ 07 января 2019
name = 'Angular';
objectKeys = Object.keys;
arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];
arr2 = { 0 : 10, 10 : 20, 20 : 30};


<ul *ngFor="let key of objectKeys(arr2)">
    <ng-container *ngFor="let item of arr" >
        <li *ngIf="item > key && item <= arr2[key]" >{{item}}</li>
    </ng-container>
</ul>
0 голосов
/ 07 января 2019

Вы можете использовать ломтик :

<ul>
  <li *ngFor="let item of arr.slice(0,10)">{{item}}</li>
</ul>

<ul>
  <li *ngFor="let item of arr.slice(10,20)">{{item}}</li>
</ul>

<ul>
 <li *ngFor="let item of arr.slice(20,30)>{{item}}</li>
</ul>
0 голосов
/ 07 января 2019
function chunkArray(myArray, chunk_size){
    var results = [];

    while (myArray.length) {
        results.push(myArray.splice(0, chunk_size));
    }    
    return results;
}

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30];

// Split in group of 3 items
arr = chunkArray(arr, 3);

добавить вложенный * ngFor в HTML

<ul *ngFor="let chunckedArr of arr">
    <li *ngFor="let item of chunckedArr">{{item}}</li>
</ul>
0 голосов
/ 07 января 2019

Прежде всего, это должно быть так:

<ul>
    <li *ngFor="let item of arr">{{item}}</li>
</ul>

И добавьте это в свой CSS:

ul{
    -webkit-columns: 3;
    -moz-columns: 3;
    columns: 3;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...