Отображение данных со значением индекса в виде сетки

Вот мой код:

<ion-grid no-padding>
    <ion-row *ngFor = "let item of items"  let i=index no-padding>
      <ion-col col-6 col-sm-3 col-md-6 col-lg-4 col-xl-3>
        <ion-card [ngStyle] = "{'background': 'url(' + item.PImage + ')'}"> 
          <div *ngIf = "item.Ptype == 'cash'" class = "cash-cat-icon"></div>
          <div *ngIf = "item.Ptype == 'cheque'" class = "cheque-cat-icon"></div>   
          <div>
          <h2 item-title >{{item.pName}}</h2>
          <h4 item-title >RS: {{item.PPrice}}</h4>
          </div>
        </ion-card>
      </ion-col>
      <ion-col col-6 col-sm-3 col-md-6 col-lg-4 col-xl-3>
          <ion-card [ngStyle] = "{'background': 'url(' + item.PImage + ')'}"> 
            <div *ngIf = "item.Ptype == 'cash'" class = "cash-cat-icon"></div>
            <div *ngIf = "item.Ptype == 'cheque'" class = "cheque-cat-icon"></div>   
            <div>
            <h2 item-title >{{item.pName}}</h2>
            <h4 item-title >RS: {{item.PPrice}}</h4>
            </div>
          </ion-card>
        </ion-col>
    </ion-row>
  </ion-grid>

Теперь мои данные выглядят так: {имя1, имя2, имя3, имя4, имя5, имя6}

Но на моем экране я получаю что-то вроде:

name1  name1
name2 name2
name3 name3
name4 name4

Но я хочу вроде:

name1 name2
name3 name4
name5 name6

Пожалуйста, помогите мне. Как я могу этого добиться! Я знаю, что нужно хранить индекс, но не знаю, как показать эти значения в соответствующей сетке.

также stackoverflow.com/questions/41597438/…

Suraj Rao 07.04.2018 07:49

@SurajRao, я пробовал эту ссылку, дин работает.Так что только разместил здесь

david 07.04.2018 08:04
0
3
63
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Оберните ion-col в ng-контейнер и дайте условие для ввода только для четного индекса

 <ion-grid no-padding>
    <ion-row  no-padding *ngFor = "let item of items;let i=index">
      <ng-container *ngIf = "i % 2 == 0">
      <ion-col col-6 col-sm-3 col-md-6 col-lg-4 col-xl-3 *ngIf = "i < items.length">
        <ion-card [ngStyle] = "{'background': 'url(' + items[i].PImage + ')'}"> 
          <div *ngIf = "items[i].Ptype == 'cash'" class = "cash-cat-icon"></div>
          <div *ngIf = "items[i].Ptype == 'cheque'" class = "cheque-cat-icon"></div>   
          <div>
          <h2 item-title >{{items[i].pName}}</h2>
          <h4 item-title >RS: {{items[i].PPrice}}</h4>
          </div>
        </ion-card>
      </ion-col>
      <ion-col col-6 col-sm-3 col-md-6 col-lg-4 col-xl-3 *ngIf = "i + 1 < items.length">
       <ion-card [ngStyle] = "{'background': 'url(' + items[i+1].PImage + ')'}"> 
          <div *ngIf = "items[i+1].Ptype == 'cash'" class = "cash-cat-icon"></div>
          <div *ngIf = "items[i+1].Ptype == 'cheque'" class = "cheque-cat-icon"></div>   
          <div>
          <h2 item-title >{{items[i+1].pName}}</h2>
          <h4 item-title >RS: {{items[i+1].PPrice}}</h4>
          </div>
        </ion-card>
      </ion-col>
      </ng-container>
</ion-row>
</ion-grid>

пожалуйста, проверьте демонстрация

не думаю, что это то, что ищет OP .. Насколько я могу судить, они хотят, чтобы в каждой строке было по два столбца.

Suraj Rao 07.04.2018 08:01

@Abinesh Joyel, я не понимаю. Мне нужно два столбца в строке. Пожалуйста, проверьте мой вопрос

david 07.04.2018 08:09

Если они хотят два столбца в одной строке, они будут только дублироваться. Я запутался сейчас, что они ищут

Abinesh Joyel 07.04.2018 08:09

@david извини, если я ошибаюсь. я изменю свой ответ

Abinesh Joyel 07.04.2018 08:12

@AbineshJoyel, мне нужно два столбца в строке. Если мои данные похожи на 1,2,3,4,5,6. Тогда я хочу [1,2], следующая строка [3,4] такая же

david 07.04.2018 08:13

@david, я обновлю его, вы можете достичь этого по индексу цикла ngFor

Abinesh Joyel 07.04.2018 08:14

@AbineshJoyel да, это будет полезно

david 07.04.2018 08:24

@AbineshJoyel, я получаю эту ошибку: TypeError: Cannot read property 'length' of null

david 07.04.2018 08:49

@david вы можете проверить демонстрацию, а также элементы должны быть массива

Abinesh Joyel 07.04.2018 08:50

@AbineshJoyel мой такой [{"Pd":"1","Pname”:”#110318-00001-001”},{"Pd”:”2”,”Pname”:”#‌​110318-00001-001”},{‌​"Pd”:”3”,”Pname”:”#1‌​10318-00001-001"}]

david 07.04.2018 08:54

пожалуйста, сверьтесь с этим stackblitz.com/edit/ionic-ndgdrw?file=pages%2Fhome%2Fhome.ht‌ мл

Abinesh Joyel 07.04.2018 09:00

@AbineshJoyel извините за поздний повтор. Да, теперь все в порядке. Но одна проблема была здесь <div *ngIf = "items[i].Ptype == 'cash'" class = "cash-cat-icon"></div> <div *ngIf = "items[i].Ptype == 'cheque'" class = "cheque-cat-icon"></div> , у меня есть только один чек. это моя вторая сетка ячеек, но в этой конкретной ячейке я вижу обе точки, которые представляют как чеки, так и наличные.

david 07.04.2018 11:04

@AbineshJoyel, почему это так? Любая идея ??

david 07.04.2018 11:04

Позвольте нам продолжить обсуждение в чате.

Abinesh Joyel 07.04.2018 11:38

@AbineshJoyel, пожалуйста, помогите мне здесь stackoverflow.com/questions/49817228/…

david 13.04.2018 18:52

@david я проверю и отвечу

Abinesh Joyel 14.04.2018 06:45

Другие вопросы по теме