以下滑动操作会在模板中加载三个图像。他们目前工作正常,但我想用功能谷歌地图iframe和一个复选框和名称循环更改两个图像。
我尝试用html替换图片链接并将<img [src]="avatar.content" [alt]="">
更改为{{avatar.content}}
,但模板将html视为纯文本。
我最好的选择是什么?
component.ts
SWIPE_ACTION = { LEFT: 'swipeleft', RIGHT: 'swiperight' };
avatars = [
{
content: 'https://semantic-ui.com/images/avatar2/large/kristy.png',
visible: true
},
{
content: 'https://semantic-ui.com/images/avatar2/large/matthew.png',
visible: false
},
{
content: 'http://semantic-ui.com/images/avatar/large/jenny.jpg',
visible: false
}
];
// action triggered when user swipes
swipe(currentIndex: number, action = this.SWIPE_ACTION.RIGHT) {
// out of range
if (currentIndex > this.avatars.length || currentIndex < 0) { return };
let nextIndex = 0;
// swipe right, next avatar
if (action === this.SWIPE_ACTION.RIGHT) {
const isLast = currentIndex === this.avatars.length - 1;
nextIndex = isLast ? 0 : currentIndex + 1;
}
// swipe left, previous avatar
if (action === this.SWIPE_ACTION.LEFT) {
const isFirst = currentIndex === 0;
nextIndex = isFirst ? this.avatars.length - 1 : currentIndex - 1;
}
// toggle avatar visibility
this.avatars.forEach((x, i) => x.visible = (i === nextIndex));
}
component.html
<div class="swipe-box" *ngFor="let avatar of avatars; let idx=index" (swipeleft)="swipe(idx, $event.type)" (swiperight)="swipe(idx, $event.type)"
[class.visible]="avatar.visible" [class.hidden]="!avatar.visible">
<div class="swipe-content">
<img [src]="avatar.content" [alt]="">
</div>
</div>
这是复选框循环:
<md-list>
<md-list-item *ngFor="let guest of event['guests'] | keys">
<md-icon md-list-icon><img class="event-img" src="http://lorempixel.com/70/70" /></md-icon>
<h3 md-line> {{ guest.value.first_name }} {{guest.value.last_name}} </h3>
<p md-line>
</p>
<span flex>
<md-checkbox *ngIf="checkGuest(guest.key) === false" (change)="checkIn(guest.key)"></md-checkbox>
<md-checkbox *ngIf="checkGuest(guest.key) === true" (change)="checkOut(guest.key)" [checked]="true === true"></md-checkbox>
</span>
</md-list-item>
</md-list>
答案 0 :(得分:1)
不确定困难在哪里。你有一个索引可以跟踪你的位置以及你想要展示的几件事。只需使用一些跟踪该索引的条件,并根据该索引显示不同的模板/ html块/指令。
modified_str
在您的示例中,该模板逻辑将位于“.swipe-content”div下。您可能需要稍微修改一下打字稿代码,以便将currentIndex定义/跟踪为组件模板可用的变量(如果不是这样的话)(看起来它只是传递给函数)。
答案 1 :(得分:0)
试试这个图书馆https://www.npmjs.com/package/ngx-carousel。它具有您需要的所有功能,并且易于使用