首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >父ngFor上次创建的数组的ngFOR take

父ngFor上次创建的数组的ngFOR take
EN

Stack Overflow用户
提问于 2020-01-16 23:41:37
回答 2查看 187关注 0票数 0

我想将material选项卡与创建子ngFor阵列的ngFor连接起来。

所以从头开始:

代码语言:javascript
复制
<mat-tab-group>
<mat-tab *ngFor="let tab of asyncTabs ">
    <ng-template mat-tab-label>{{tab.label}}</ng-template>
    <div *ngFor="let event of tabs">
        <event-thumbnail [eve]="event"></event-thumbnail>
    </div>  
</mat-tab>

我做的第一步是创建一个“标签”标签

代码语言:javascript
复制
        this.asyncTabs = [
        {label: 'A-B', content: this.getTabContent(10)},
        {label: 'C-D', content: this.getTabContent(5)},
        {label: 'E-F', content: this.getTabContent(0)},
        {label: 'G-H', content: this.getTabContent(0)},
        {label: 'I-J', content: this.getTabContent(0)},
        {label: 'K-L', content: this.getTabContent(0)},
        {label: 'M-N', content: this.getTabContent(0)},
        {label: 'O-P', content: this.getTabContent(0)},
        {label: 'R-S', content: this.getTabContent(0)},
        {label: 'T-U', content: this.getTabContent(0)},
        {label: 'W-X', content: this.getTabContent(0)},
        {label: 'Y-Z', content: this.getTabContent(0)},
    ]

我的getTabContent()函数根据条件过滤一些数组,并返回带有过滤对象的tabs数组。

代码语言:javascript
复制
    getTabContent(condition){
     this.tabs = this.events.filter(x=> x.price == condition)
     return this.tabs 
    }

之后,我想运行子ngFor *ngFor="let event of tabs",它应该填充每个选项卡的内容

问题是,第二个ngFor始终采用第一个ngFor创建的最后一个tabs数组,并且所有选项卡都填充相同的数据

新阵列配置tabs: IEvent[] = []

有谁能帮我一下吗?附言:我知道我可以使用列表过滤,但我需要这样做

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-17 01:45:50

你可以直接使用tab.content,不需要this.tab。每次运行getTabContent函数时,它都会替换this.tab值,因此它将始终保存最后一个RAN值。

代码语言:javascript
复制
<mat-tab-group>
<mat-tab *ngFor="let tab of asyncTabs ">
    <ng-template mat-tab-label>{{tab.label}}</ng-template>
    <div *ngFor="let event of tab.content">
        <event-thumbnail [eve]="event"></event-thumbnail>
    </div>  
</mat-tab>
代码语言:javascript
复制
getTabContent(condition){
   return this.events.filter(x=> x.price === condition);
}

例如:https://stackblitz.com/edit/angular-m3w1pv

票数 2
EN

Stack Overflow用户

发布于 2020-01-17 00:04:53

您需要使用索引告诉您要在哪个"tab“上迭代:

代码语言:javascript
复制
<mat-tab-group>
<mat-tab *ngFor="let tab of asyncTabs; let i = index">
    <ng-template mat-tab-label>{{tab.label}}</ng-template>
    <div *ngFor="let event of tabs[i]">
        <event-thumbnail [eve]="event"></event-thumbnail>
    </div>  
</mat-tab>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59773168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档