각도 - 선택 옵션 값으로 객체
개체를 값으로 사용하는 다양한 선택 상자가 있는 양식이 있습니다.
<mat-option [value]="object">
양식을 통해 새 레코드를 만들 때 유용합니다.이제 제가 레코드를 편집할 때, 저는 문제에 부딪칩니다.object
에서mat-select-option
이(가) Rest Service에서 받는 "동일한" 개체가 아니므로 레코드를 편집할 때 선택 상자에 선택된 옵션이 없습니다.
선택 상자 위젯이 일치하도록 알려줄 수 있습니까?object.id
어떤 옵션이 선택되었는지 결정할 때?이 문제를 해결하기 위해 지침을 작성해야 할 수도 있지만, Angular 또는 Angular Material 라이브러리나 다른 기존 솔루션으로 이미 가능할 수도 있습니다.
자세히 말하자면, 나는 나의 것을 가지고 있습니다.foo.component.ts
파일:
let item = {
'fruit': { id: 1, 'label': 'Pineapple' },
}
let options = [
{ 'id':1, 'label': 'Pineapple' },
{ 'id':2, 'label': 'Banana' },
{ 'id':3, 'label': 'Papaya' }
]
그리고 나의.html
파일:
<mat-select placeholder="Fruit" [(ngModel)]="item.fruit">
<mat-option *ngFor="let option of options" [value]="option">{{option.label}}</mat-option>
</mat-select>
사용자가 페이지를 방문할 때, 그들은 "파인애플"이 선택된 것을 볼 것입니다.mat-select
왜냐하면 '파인애플'은item.fruit
그리고options
배열이 동일한 '접두사' 개체를 가리키고 있지 않습니다.mat-select
비어 있습니다.
다음과 같은 것을 보고 싶습니다.
<mat-select
placeholder="Fruit"
[(ngModel)]="item.fruit"
equalityAttr="id"
>
바로 그것입니다.[compareWith]
지시의Angular.io 은 현재 다운되어 있으므로 참고를 위해 이 중간 기사에 잉크를 넣을 것입니다.
HTML
<mat-select
placeholder="Fruit"
[(ngModel)]="item.fruit"
[compareWith]="objectComparisonFunction">
<mat-option *ngFor="let option of options" [value]="option">{{option.label}}</mat-option>
</mat-select>
타입스크립트
public objectComparisonFunction = function( option, value ) : boolean {
return option.id === value.id;
}
언급URL : https://stackoverflow.com/questions/51989366/angular-objects-as-select-option-values
'programing' 카테고리의 다른 글
문자열로 지정된 식을 평가합니다. (0) | 2023.06.19 |
---|---|
Rails: 페이지 제목을 변경하는 방법은 무엇입니까? (0) | 2023.06.19 |
VueJS - VueX : 비동기 프로세스 후 알림 표시 (0) | 2023.06.19 |
MySQL/Connector C 라이브러리를 사용하는 C 애플리케이션은 메모리를 매우 빠르게 소비합니다. (0) | 2023.06.19 |
몽구스JS - 최대값을 가진 요소를 찾는 방법은 무엇입니까? (0) | 2023.06.19 |