ionic 2 angular 2 在两列中分布绑定记录

Posted

技术标签:

【中文标题】ionic 2 angular 2 在两列中分布绑定记录【英文标题】:ionic 2 angular 2 distribute binding records in two columns 【发布时间】:2018-03-15 07:31:04 【问题描述】:

我正在为一个简单的操作而苦苦挣扎,我需要将一些从 firebase2 listobservable 绑定的徽标分布在两列中。我有一个参考号,调用顺序,它是一个序列号,所以我可以知道哪个是奇数,哪一对,但我怎样才能在同一行留下一对奇数和一对。这是我的“绑定代码”的想法:

<ion-grid>
<ion-row *ngFor="let hotel of hotels | async">
  <ion-col col-6 *ngIf="hotel.orden%2 == 1" (click)="itemTapped(hotel.$key)">
    <img src="hotel.logo" >
  </ion-col>
  <ion-col col-6 *ngIf="hotel.orden%2 == 0" (click)="itemTapped(hotel.$key)">
     <img src="hotel.logo" >
  </ion-col>
</ion-row>

在“酒店”集合中,我有两个元素:订单和徽标(徽标是图像路径)。

谁能给我一个提示,我来这里是为了一些我们的。 提前致谢!

这是目标:

【问题讨论】:

【参考方案1】:

您可以使用 ng-container 每 2 步对元素进行分组,如下所示:

[编辑]:确保酒店的类型为 any[]

<ion-grid *ngIf="hotels">
  <ion-row *ngFor="let hotel of hotels | async;let i = index">
    <ng-container *ngIf="hotel.orden%2 == 0">
      <ion-col col-6 >
        <img src="hotel.logo" (click)="itemTapped(hotel.$key)">
      </ion-col>
      <ion-col col-6>
        <img *ngIf="hotels.length - 1 > i && hotels[i+1].orden % 2 === 1"
              (click)="itemTapped(hotels[i+1].$key)"
              src="hotels[i+1].logo">
      </ion-col>
    </ng-container>
  </ion-row>
</ion-grid>

这里假设第一个元素总是偶数。如果不是,那么第一个元素将被解雇。但我相信你可以从这一点上解决问题!

【讨论】:

嗨 Mehdi,感谢您的 cmets,这是个好主意,但我在使用 hotels[i+1].logo 时遇到了问题,我收到了以下错误消息: “ERROR TypeError: co.hotels[v.context.index] is undefined”,你认为是语法错误吗? 我不知道您的 ts 代码是什么样的,但我可以做出的一个猜测是,该错误是由于酒店是可观察的这一事实引起的。我测试了这段代码,区别在于酒店是我在订阅函数中返回响应后构建的酒店数组。试试看! 嗨 Mehdi,是的,酒店是一个 Firebase 列表 Observable -> this.hotels = db.list('hoteles/', query: orderByChild: 'orden', );当你推荐我时,我尝试订阅 -> this.hotels = db.list('/hoteles/', preserveSnapshot: true ); this.hotels.subscribe(snapshot => snapshot.forEach(snapshot => console.log(snapshot.key, snapshot.val()); ); );但我仍然有同样的错误信息; TypeError: co.hotels[v.context.index] 未定义 在你的例子中,hotels 仍然是一个 Observable。尝试在返回时将实际数组存储在酒店中。因此,请确保您在酒店存在之前不要尝试消费。我已经编辑了我的回复以反映这一点

以上是关于ionic 2 angular 2 在两列中分布绑定记录的主要内容,如果未能解决你的问题,请参考以下文章

Android:在两列中显示信息,而不是 BaseAdapter 的一列

如何同时在两列中添加或插入多行? [复制]

基于可互换出现在两列中的值聚合数据?

如何选择在两列中具有相同值集的行,从而连接第三列中的值?

HTML CSS 响应式地将图像堆叠在两列中

ipywidgets:如何在两列中组织滑块