【发布时间】:2018-10-08 16:53:17
【问题描述】:
我有一个输入下拉组件,它在同一个应用程序的多个位置使用,但在不同的选项卡中。
我面临的问题是,当我从选项卡 1 的下拉列表中选择一个值并使用该值完成 API 调用时,选项卡 2 中的相同组件也使用选项卡 1 中的选定值执行此操作。
当我在不同的标签中订阅相同的服务时,如何解决这个问题?
<ng-select
[items]="Groups"
[virtualScroll]="true"
bindLabel="bg_desc"
bindValue="bg_desc"
placeholder="Groups"
[(ngModel)]="selectedGroup"
[clearable]="false"
(change)="selectGroups()">
<ng-template
ng-notfound-tmp
let-searchTerm="searchTerm">
<div class="ng-option disabled">
No data found for "{{searchTerm}}"
</div>
</ng-template>
<ng-template
ng-option-tmp
let-item="item"
let-search="searchTerm">
<div
[ngOptionHighlight]="search"
class="text-uppercase">
{{item.bg_desc}}
</div>
</ng-template>
</ng-select>
这是在我的组件中:
selectGroups() {
this._data.changeGroup(this.selectedGroup);
}
这是我的服务:
changeGroup(bg: string) {
this.changeGroupData.next(bg);
}
private changeGroupData = new BehaviorSubject<string>('');
currentChangeGroupData = this.changeGroupData.asObservable();
这是我的 stackbliz 示例:https://stackblitz.com/edit/angular-1oucud
我希望在这些选项卡上单独调用。我应该创建三个具有不同名称的相同组件实例来实现这一点吗?
【问题讨论】:
标签: javascript html angular rxjs angular-material