Angular 12个展示组件一一展示
Angular 12 display components one by one
我有一个单词数组,我想通过卡片组件将每个单词一个一个地显示出来。
如何一次只显示一个卡片组件,点击跳转到下一个?
(我想生成所有带有特定单词的卡片,而不仅仅是更改一张卡片中的单词。)
据我了解,您有一个名为 "app-card-component"
?
的组件
我不确定你的理解水平如何,所以我将保持简单。
用数组显示组件时,通常会使用 *ngFor
。所以在这种情况下它可能是:
<app-card-component *ngFor="let card of oneByOneArray; index as i"><app-card-component>
(oneByOneArray 是您将单词推送到的数组;一个接一个)。
为了一一显示这些词,我会使用一个单独的数组将这些词推送到点击时。
单击您可以使用我们现在在 *ngFor
中定义为索引的 i
来查找我们想要推送到我们的 oneByOneArray 的下一个单词。
所以执行此操作的函数可能如下所示:
pushWordWithIndex(i) {
this.oneByOneArray.push(this.originalArray[i] + 1);
}
现在您可以像这样向卡片添加点击事件:
<app-card-component *ngFor="let card of oneByOneArray; index as i" (click)="pushWordWithIndex(i)"><app-card-component>
快速提示:
您应该在 ngOnInit 上启动 pushWordWithIndex 函数,否则它当然不会显示任何卡片。 this.pushWordWithIndex(0);
.
以下可能与您要查找的内容接近?然后,您需要为隐藏和显示 类 之间的过渡设置动画,以获得您提到的 'jump':
<div
*ngFor="let word of wordArray, let i = index"
[class.show]="selectedCard === i"
[class.hide]="selectedCard !== i"
(click)="onCardClick(i)"
>
{{ word }}
</div>
selectedCard: number = 0
onCardClick(id: number): void{
this.selectedCard = id + 1
}
随着罗伊的回应,可能是这样的
HTML
<app-card-component *ngFor="let card of oneByOneArray"><app-card-component>
<button (click)="nextWord()"></button>
组件
const words = ['word1', 'word2', 'wordN']
const oneByOneArray = [];
nextWord(){
this.oneByOneArray.push(words.pop());
}
我有一个单词数组,我想通过卡片组件将每个单词一个一个地显示出来。 如何一次只显示一个卡片组件,点击跳转到下一个?
(我想生成所有带有特定单词的卡片,而不仅仅是更改一张卡片中的单词。)
据我了解,您有一个名为 "app-card-component"
?
我不确定你的理解水平如何,所以我将保持简单。
用数组显示组件时,通常会使用 *ngFor
。所以在这种情况下它可能是:
<app-card-component *ngFor="let card of oneByOneArray; index as i"><app-card-component>
(oneByOneArray 是您将单词推送到的数组;一个接一个)。
为了一一显示这些词,我会使用一个单独的数组将这些词推送到点击时。
单击您可以使用我们现在在 *ngFor
中定义为索引的 i
来查找我们想要推送到我们的 oneByOneArray 的下一个单词。
所以执行此操作的函数可能如下所示:
pushWordWithIndex(i) {
this.oneByOneArray.push(this.originalArray[i] + 1);
}
现在您可以像这样向卡片添加点击事件:
<app-card-component *ngFor="let card of oneByOneArray; index as i" (click)="pushWordWithIndex(i)"><app-card-component>
快速提示:
您应该在 ngOnInit 上启动 pushWordWithIndex 函数,否则它当然不会显示任何卡片。 this.pushWordWithIndex(0);
.
以下可能与您要查找的内容接近?然后,您需要为隐藏和显示 类 之间的过渡设置动画,以获得您提到的 'jump':
<div
*ngFor="let word of wordArray, let i = index"
[class.show]="selectedCard === i"
[class.hide]="selectedCard !== i"
(click)="onCardClick(i)"
>
{{ word }}
</div>
selectedCard: number = 0
onCardClick(id: number): void{
this.selectedCard = id + 1
}
随着罗伊的回应,可能是这样的
HTML
<app-card-component *ngFor="let card of oneByOneArray"><app-card-component>
<button (click)="nextWord()"></button>
组件
const words = ['word1', 'word2', 'wordN']
const oneByOneArray = [];
nextWord(){
this.oneByOneArray.push(words.pop());
}