【发布时间】:2019-05-13 17:17:35
【问题描述】:
我正在创建一个简单的客户管理应用。其中一项功能是过滤表格以列出活跃和不活跃的客户。我的问题是,当单击下拉列表时,我无法获得布尔值,即 true/false,但只有字符串“true”/“false”,因此我的过滤器不起作用。
这是我的html:
<strong class="ml-2">Active Status</strong>
<select class="ml-1" name="activeStatus" [(ngModel)]="activeStatus">
<option></option>
<option value=true>Active</option>
<option value=false>Not Active</option>
</select>
我的表格过滤管道:
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'tableFilters'
})
export class TableFiltersPipe implements PipeTransform {
transform(list: any[], filters: Object) {
const keys = Object.keys(filters).filter(key => filters[key]);
const filterUser = user => keys.every(key => user[key] === filters[key]);
return keys.length ? list.filter(filterUser) : list;
}
}
【问题讨论】:
-
试试
[value]="true" -
@SumeetKale 似乎没有什么不同!放在方括号里是什么意思?
-
你应该使用
[ngValue]:<option [ngValue]="true">。 -
@ConnorsFan 这行得通! ngValue 是如何工作的?