代码之家  ›  专栏  ›  技术社区  ›  angler

带选择菜单的角度过滤器数据

  •  0
  • angler  · 技术社区  · 8 年前

    我想使用选择菜单筛选数据表。我已经填充了数据,并且有一个管道,尽管我一定做错了什么,但是当我从下拉列表中选择某个内容时,它只会清空由组件html生成的数据表。

    <div>
    <select [(ngModel)]="selectOpt" name="selectOpt" class="password-sort-select" >
    <option>Select Team</option>
    <option *ngFor="let team of teams" [ngValue]="team.team_id">{{team.team_name}}</option>
    </select>
    </div>
    
    <ul class="company-display-data data-table passwords">
    <li *ngFor="let password of passwords | filter: selectOpt" class="cf">
    <a class="team-badge-wrapper" href="#"><span class="team-badge">{{password.team_name}}</span></a>
    <span class="team-display-data team-description">{{password.description}}</span>
    <span class="team-display-data team-url">{{password.url}}</span>
    <span class="team-display-data team-username">{{password.username}}</span>
    <span class="team-display-data team-password">{{password.password}}</span>
    <a class="team-edit" routerLink="/detail/{{password.id}}"><span class="display-data">Edit</span></a>
    
    </li>
    </ul>
    
    import { Pipe, PipeTransform } from '@angular/core';
    
    @Pipe({
    name: 'filter'
    })
    
    export class FilterPipe implements PipeTransform {
    
    transform(items: any, selectOpt?: any): any {
    return selectOpt ? items.filter(opt => opt.password_id === selectOpt) : items;
    }
    }
    

    我做错什么了?

    1 回复  |  直到 8 年前
        1
  •  0
  •   wFitz    8 年前

    选择值时,管道返回空数组

    return selectOpt ? items.filter(opt => opt.password_id === selectOpt) : items;
    

    您可能还希望修复在选择“Select Team”时它不显示任何内容

    return (selectOpt && selectOpt != 'Select Team') ? items.filter(opt => password_id === selectOpt) : items;
    

    https://stackblitz.com/edit/angular-rb5vmu

    推荐文章