gpt4 book ai didi

angular - 从 Angular Material 的自动完成中获取 'id' 选定值

转载 作者:行者123 更新时间:2023-12-04 00:59:48 24 4
gpt4 key购买 nike

如何设置 mat-autocomplete 以获得选定的选项 ID?

<mat-form-field>
<input type="text" matInput
[formControl]="autocompleteControl"
[matAutocomplete]="auto">
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let book of books" [value]="book.id"> <!-- THIS SHOW THE ID ON THE UI -->
{{ book.title }}
</mat-option>
</mat-autocomplete>
</mat-form-field>
如果我在 处将“book.title”更改为“book.id” [值] 属性,UI 在自动完成输入上显示 ID,这不好。我应该把“book.id”放在哪里,以便稍后在我的 component.ts 上询问他?

最佳答案

您可以使用 displayWith 显示选项的特定值。
它需要一个映射函数来获得 valuemat-option并返回 mat-option 的显示值
试试这个:

import {Component} from '@angular/core';
import {FormControl} from '@angular/forms';

/**
* @title Simple autocomplete
*/
@Component({
selector: 'autocomplete-simple-example',
templateUrl: 'autocomplete-simple-example.html',
styleUrls: ['autocomplete-simple-example.css'],
})
export class AutocompleteSimpleExample {
myControl = new FormControl('1');
options: string[] = ['One', 'Two', 'Three'];
books: Array<{ id: string; title: string }> = [
{ id: '1', title: 'Book 1' },
{ id: '2', title: 'Book 2' },
{ id: '3', title: 'Book 3' },
{ id: '4', title: 'Book 4' },
];

getTitle(bookId: string) {
return this.books.find(book => book.id === bookId).title;
}

onSubmit() {
console.log(this.myControl.value);
}
}
在模板中:
<form class="example-form">
<mat-form-field class="example-full-width">
<input
type="text"
placeholder="Pick one"
aria-label="Number"
matInput
[formControl]="myControl"
[matAutocomplete]="auto">
<mat-autocomplete
#auto="matAutocomplete"
[displayWith]="getTitle.bind(this)">
<mat-option
*ngFor="let book of books"
[value]="book.id">
{{book.title}}
</mat-option>
</mat-autocomplete>
</mat-form-field>
<button (click)="onSubmit()">Submit</button>
</form>

Here's a Working Sample Demo Code your ref.

关于angular - 从 Angular Material 的自动完成中获取 'id' 选定值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59450039/

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