Ionic 如何作用于离子滑道上的单个物品?

5vf7fwbs  于 2022-12-08  发布在  Ionic
关注(0)|答案(2)|浏览(174)

我在ion-slide中有一个卡片列表,每张卡片都有一个箭头图标,它压缩卡片中的一个div以隐藏细节,箭头在压缩时会翻转,单击它会展开它。
要做到这一点,我必须通过scaleY()CSS函数执行箭头翻转,并展开div

主页.html&主页.scss

第一个

主页.页面.ts

travdetails = true;

它工作正常,但扩展了所有卡中的所有div一次,如何只扩展选定的卡?

7rtdyuoh

7rtdyuoh1#

因为你的情况不具体,所以所有的卡都被免除了。
如果travel details发生变化,将影响所有卡。
你应该有一个特定的travdetails如travdetails1,travdetails2为您添加的每张卡。
或者,如果您基于列表创建组件,则可以添加类似isExpended的属性。

<ion-card *ngFor="let travdetails of travdetailsList">
            <ion-img  src="pathicon" *ngIf="travdetails.isExpanded"(click)="travdetails.isExpanded =!travdetails.isExpanded"></ion-img> (normal arrow)
            <ion-img id='flip' src="pathicon" *ngIf="!travdetails.isExpanded"
                (click)="travdetails.isExpanded= !travdetails.isExpanded"> (flipped arrow)
             <ion-text> Some Text </ion-text> 
             <div *ngIf="travdetails.isExpanded"> (div that expanded and compressed)
             <ion-text> Some Text> </ion-text>
             </div>
       </ion-card>
1tuwyuhd

1tuwyuhd2#

您可以将该逻辑封装在其自己的组件中,这样每个组件都是一个独立的对象,不会相互干扰。
然后,您可以在新组件中使用Angular 内容投影,以使其更易于使用,而不是通过输入将所有内容传递给它。
https://angular.io/guide/content-projection
如果在ngFor循环中创建幻灯片,则可以使用索引来标识对象并仅对特定对象执行操作

*ngFor="let item of items; let i=index"

相关问题