2017-02-21 6 views
5

Я хочу создать divs на лету (с помощью классов начальной загрузки) в угловом 2 на основе значения, которое я получаю из базы данных. Например, я получаю 6 категорий из db, так что это будет отображаться на экране в 3 div.row с 2 div.col-md-6 внутри. Как я могу написать цикл for в Angular для этого?Угловой 2: динамически создавать divs

Редактировать: или спросить об этом иначе, как я могу использовать ngFor для создания элементов только по нечетным индексам?

+1

Пробовали ли вы использовать * ngFor? – galvan

+0

Как я могу создать только 3 div.row с ngFor, хотя при итерации до 6? –

+0

создать трубу, которая разделена на столбцы? – n00dl3

ответ

1

Для того, чтобы полностью ответить на ваш вопрос, необходимо увидеть структуру вашего объекта/массива.

Во всяком случае, вот как вы бы проверить, если его нечетной:

<div *ngFor="let x of anyArray; let even = even; let odd = odd"> 
    <div *ngIf="odd">odd</div> 
    <div *ngIf="even">even</div> 
</div> 

UPDATE

с заданной структурой его легкой TODO:

@Component({ 
    selector: 'my-app', 
    template: ` 
    <div> 
     <h2>Hello {{name}}</h2> 

     <div *ngFor="let row of data" class="any class you want here"> 
     <div *ngFor="let item of row" class="any class you want"> 
      {{ item.id + ': ' + item.name }} 
     </div> 

     <br /> <!-- just to demonstrate a visual effect here! :) --> 
     </div> 

    </div> 
    `, 
}) 
export class App { 
    name:string; 

    data = [ 
    [{id:1,name:'name1'},{id:2,name:'name2'}], 
    [{id:3,name:'name3'},{id:4,name:'name4'}], 
    [{id:5,name:'name5'},{id:6,name:'name6'}] 
    ]; 

    constructor() { 
    this.name = 'Angular2' 
    } 
} 

жить демо: https://plnkr.co/edit/XjS25h19Rjny4N6OVhN1?p=preview

Или используя свой первый d ата подход и использование трубы:

демо: https://plnkr.co/edit/8P15VdkWS4Oy02Ezevpp?p=preview

+0

Просто у меня есть массив с некоторыми пользовательскими объектами, [{id: 1, name: 'name1'}, {id: 2, name: 'name2'}, {id: 3, name: 'name3'}, {id : 4, name: 'name4'}, {id: 5, name: 'name5'}, {id: 6, name: 'name6'}] –

+0

Думаю, мне нужно будет изменить это на [[{id: 1 , имя: 'имя1'}, {ID: 2, имя: 'имя2'}], [{ID: 3, имя: 'name3'}, {ID: 4, название: 'NAME4'}] , [{id: 5, name: 'name5'}, {id: 6, name: 'name6'}]], чтобы избавить меня от головной боли –

+0

С вашим вторым массивом в массиве подход проще, thats true ! :) – mxii

 Смежные вопросы

  • Нет связанных вопросов^_^