angular - 下拉列表中的文本应该不同于值
问题描述
我的模板中有一个下拉列表,它使用清晰框架在 Angular 中。该值需要是机构 ID,因为只有它是我的对象的一部分。但我希望显示的文本是机构名称。我已经尝试了很多方法来做到这一点,但到目前为止还没有运气。这是我最近的尝试:
ts文件
agencyName = 'xxx';
caregivers$: Observable<Caregiver[]> = combineLatest([this.pagination$, this.filters$]).pipe(
switchMap(([pagination, filters]) => {
return this.afs
.collection<Caregiver>('caregivers', (ref) => {
let query: any = ref;
if(filters) {
for (const filter of filters) {
if (filter.property === "onboardingCompleted") {
const value = JSON.parse(filter.value);
query = query.where(filter.property, "==", value)
}
if (filter.property === 'agency.agencyId') {
query = query.where(filter.property, 'in', filter.value)
}
if (this.nameFilter.value == ['xxxKjiSfMOK9WbG']) {
this.agencyName = 'xxx';
} else if (this.nameFilter.value == ['xxxJnVzGb5Icx08']) {
this.agencyName = 'xxx';
}
console.log(this.nameFilter.value);
console.log(this.agencyName);
}
}
if (pagination.after) {
query = query
.orderBy('firstName', 'asc')
.orderBy('caregiverId')
.startAfter(
pagination.after.firstName,
pagination.after.caregiverId
)
.limit(pagination.limit);
} else if (pagination.before) {
query = query
.orderBy('firstName', 'asc')
.orderBy('caregiverId')
.endBefore(
pagination.before.firstName,
pagination.before.caregiverId
)
.limitToLast(pagination.limit);
} else {
query = query.orderBy('firstName', 'asc').limit(pagination.limit);
}
return query;
})
.valueChanges()
.pipe(
tap(console.log),
tap((caregiversArray) => {
const caregivers = caregiversArray;
this.updateState({ ...STATE, caregivers });
})
);
})
);
这是我的模板
<ng-container *clrDgHideableColumn="{hidden: false}">
Agency
<clr-dg-filter [clrDgFilter]="nameFilter">
<clr-checkbox-wrapper *ngFor="let agencyId of nameFilterValues; index as i" (change)="updateNameFilter($event)">
<input type="checkbox" name = "name" clrCheckbox required [value]="agencyId" [checked]="nameFilter?.value?.includes(agencyId)" />
<label>{{agencyId }} {{agencyName }}</label>
<!-- <div *ngFor="let name of name">-->
<!-- <div>{{name.name}}</div></div>-->
</clr-checkbox-wrapper>
</clr-dg-filter>
</ng-container>
机构名称保持不变。我希望它根据下拉列表中选择的内容进行更改。
解决方案
尝试将以下指令添加到您的自定义选择标签:
[(ngModel)]="agencyName"
推荐阅读
- minecraft - 如何在 1.12.2 中 /fill with Armor Stand
- database - pg_cron 扩展连接失败
- node.js - 有没有一种有效的方法来获得成员 discord.js 的最稀有角色
- python - 如何解决 heroku flask 应用程序上的应用程序错误?
- visual-studio - 如何从 Visual Studio 将参数传递给 MSBuild?
- android - 适用于 Android 11 目标的离线提醒通知应用程序(Google Keep 之类)。应用关闭时如何接收通知?
- c# - 在asp.net中将大量数据从视图发送到控制器
- c# - Blazor 如何使用获取请求
- function - Flutter/cloud_firestore:未为 Map 类型定义运算符“[]”
功能() - reactjs - useState 的问题 - 修改后的状态没有立即反映