gpt4 book ai didi

angular - 使用具有链接的 firebase 值的 Angular Material mat-select 组件中的 compareWith 函数

转载 作者:太空狗 更新时间:2023-10-29 17:28:01 26 4
gpt4 key购买 nike

我正在尝试使用由不同类型组成的 mat-select 组件编辑一些成员的 firebase 数据。

我不确定我的节点结构,但我这样做了:

member:
member1:
name:
types:
typekey1 : Title1
typekey3 : Title3
...

types:
typekey1:
key: typekey1
title: Title1
typekey2:
key: typekey2
title: Title2
typekey3:
key: typekey3
title: Title3
...

所以我不能实现下面的功能

compareFn(t1: Type, t2: Type): boolean { 
return t1 && t2 ? t1.key === t2.key : t1 === t2;
}

使用模板

<mat-form-field>
<mat-select [compareWith]="compareFn" [(ngModel)]="member.types" multiple>
<mat-option
*ngFor="let type of types | async"
[value]="type">
{{type.title}}
</mat-option>

我似乎无法在 compareFn 函数中找到连接两种类型的方法,并在组件启动时选择了该选项

最佳答案

对于具有以下结构的对象:

listOfObjs = [{ name: 'john', id: '1'}, { name: 'jimmy', id: '2'},...]

像这样定义标记:

<mat-form-field>
<mat-select
[compareWith]="compareObjects"
[(ngModel)]="obj">
<mat-option *ngFor="let obj of listOfObjs" [value]="obj">
{{ obj.name }}
</mat-option>
</mat-select>
</mat-form-field>

然后像这样定义比较函数:

compareObjects(o1: any, o2: any) {
if(o1.name == o2.name && o1.id == o2.id )
return true;
else return false
}

关于angular - 使用具有链接的 firebase 值的 Angular Material mat-select 组件中的 compareWith 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47477167/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com