【问题标题】:Display filter based on dropdown selected value根据下拉选择值显示过滤器
【发布时间】:2019-03-28 07:16:50
【问题描述】:

我使用 angular6 反应形式。它在表单中有 3 个下拉菜单。每当下拉列表中的任何值发生变化时,我都需要在“已应用过滤器”列中显示这些选定的值,并带有关闭图标。 所以如果点击关闭图标,过滤器应该隐藏并且相应的下拉菜单应该被重置。

我正在尝试使用管道和管道转换。但事实证明在这种情况下它没有用。请让我知道任何理想的方式来进行此操作

预期结果:

【问题讨论】:

标签: typescript filter angular6


【解决方案1】:

您可以为每个字段创建一个属性,例如:selectedDeliveryMethodselectedAssesmentsselectedAvailibity 等...然后使用两种方式绑定在下拉功能中设置selected* 属性。要显示它,您只能在未定义值时显示它(undefined),当您单击关闭图标时,您将值设置为undefined,因此它将消失。

例子:

组件

@Component({ ... })
export class AppComponent {
  public selectedItem: any;
  public itemArray: any = [
    "USA",
    "Canada",
    "France",
  ];

  public removeSelectedItem(): void {
    this.selectedItem = undefined;
  }
}

HTML

<select [(ngModel)]="selectedItem">
  <option *ngFor="let item of itemArray">{{ item }}</option>
</select>

Selected filter: 
<span *ngIf="selectedItem != undefined">
  {{ selectedItem }}
  <button (click)="removeSelectedItem()">Remove selected item</button>
</span>

有一个 stackblitz 向您展示它是如何工作的:https://stackblitz.com/edit/angular-eytqnx

另一种选择是将任何下拉列表的选择项添加到 Array 中,然后使用带有自定义模板(文本 + 关闭图标)的 *ngFor 指令显示它

希望对你有帮助。

【讨论】:

  • 谢谢!让我试试这种方法
猜你喜欢
  • 2018-01-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-06
  • 1970-01-01
  • 1970-01-01
  • 2015-03-08
  • 1970-01-01
相关资源
最近更新 更多