第一个下拉选择不会过滤第二个下拉列表

时间:2018-04-19 12:45:40

标签: javascript angular angular-template

我正在尝试根据第一个下拉列表的选择来过滤下拉列表,在我的控制台日志中,一切都很好,但是第二个下拉列表总是显示所有结果,而不是过滤掉一个,这是我如何做到的:

<!--Group-->
<div class="form-group">
  <label class="control-label dash-control-label col-xs-3">GROUP:</label>
  <div class="col-xs-9">
    <select class="form-control" style="width: 100%;"
            data-minimum-results-for-search="Infinity" name="articleGroups" required (change)="filterSubById(article.mainGroup.id)" [(ngModel)]="article.mainGroup">
      <option disabled [ngValue]="null">-/-</option>
      <option [ngValue]="group" *ngFor="let group of mainGroups">{{group.title}}</option>
    </select>
  </div> 
</div>

<!--Subgroup-->
<div class="form-group">
  <label class="control-label dash-control-label col-xs-3">SUBGROUP:</label>
  <div class="col-xs-9">
    <select class="form-control" style="width: 100%;" name="subGroup" required [(ngModel)]="article.subGroup">
      <option disabled [ngValue]="null">-/-</option>
      <option [ngValue]="subgroup" *ngFor="let subgroup of subGroups">{{subgroup.title}}</option>
    </select>
  </div>
</div>

1 个答案:

答案 0 :(得分:2)

您需要将filterBySubId方法的结果传递回视图。你没有对返回的值做任何事情。

我会做这样的事情:

filterSubById(Id) {
    this.filteredSubGroups = this.subGroups.filter(item => item.parentId == Id);
}

并在视野中

<option [ngValue]="subgroup"
        *ngFor="let subgroup of filteredSubGroups">{{subgroup.title}}</option>
相关问题