【发布时间】:2017-12-19 20:59:22
【问题描述】:
我有两个组件,在 admin.component 用户名中我可以过滤,在 vragen.component 我无法过滤,它们是相同的 HTML。为什么我无法访问 vragenSearch。
Angular 的 HTML
<div class="container-fluid">
<ul>
<div *ngFor=" let vraag of resultsvragen | sort | filter : vragenSearch; let i = index">
<li [ngClass]="{'omkringd': vraag.username == this.dataService.UserName, 'omkringdTwee': vraag.username !== this.dataService.UserName }" (click)="onSelect(vraag, vraag.vraagID)"
[ngStyle]="{'background-color':this.markeer[vraag.vraagID]? '#47d147':'none'}">
{{vraag.username+": "}} {{vraag.tekst}}
<div *ngIf="!this.upvote[vraag.vraagID]">
<button class="btn btn-success" (click)="Upvote(vraag.vraagID)"><i class="fa fa-heart-o" aria-hidden="true"></i></button>
</div>
Angular 的 HTML
<ul>
<div *ngFor="let user of allUsers | filter : usersSearch; let i = index">
<li>
{{ user.voornaam + " : " }}
<div *ngIf="user.leerkracht">Admin</div>
<div *ngIf="!user.leerkracht">
Geen admin
<button class="btn btn-sm btn-primary" name="maakAdminButton" (click)="maakAdmin(user.id)">Maak admin</button>
</div>
</li>
</div>
</ul>
角过滤管
import {Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'filter'
})
export class FilterPipe implements PipeTransform {
transform(items: any[], usersSearch: string, vragenSearch: string){
if (items && items.length){
return items.filter(item =>{
if (usersSearch && item.voornaam.toLowerCase().indexOf(usersSearch.toLowerCase()) === -1){
return false;
}
if (vragenSearch && item.tekst.toLowerCase().indexOf(vragenSearch.toLowerCase()) === -1){
return false;
}
return true;
})
}
else{
return items;
}
}
}
【问题讨论】:
标签: angular