gpt4 book ai didi

Angular 5+ Material 自动完成位置错误

转载 作者:行者123 更新时间:2023-12-02 20:56:13 25 4
gpt4 key购买 nike

我正在尝试做example Angular Material 网站中提供了自动完成功能,当我在应用程序中实现它时,选项出现在其他地方,而不是在输入下方,如图 enter image description here 所示。

我目前在html文件中有以下代码

<form class="example-form">
<mat-form-field class="example-full-width">
<input matInput placeholder="State" aria-label="State"
[matAutocomplete]="auto" [formControl]="stateCtrl">
<mat-autocomplete #auto="matAutocomplete">
<mat-option *ngFor="let state of filteredStates | async"
[value]="state.name">
<img class="example-option-img" aria-hidden [src]="state.flag"
height="25">
<span>{{state.name}}</span> |
<small>Population: {{state.population}}</small>
</mat-option>
</mat-autocomplete>
</mat-form-field>
</form>

这就是我在 component.ts 文件

中的内容
import { FormControl } from '@angular/forms';
import { Observable } from 'rxjs';
import { map, startWith } from 'rxjs/operators';

stateCtrl = new FormControl();
filteredStates: Observable < State[] >;

states: State[] = [
{
name: 'Arkansas',
population: '2.978M',
// https://commons.wikimedia.org/wiki/File:Flag_of_Arkansas.svg
flag: 'https://upload.wikimedia.org/wikipedia/commons/9/9d/Flag_of_Arkansas.svg'
}, {
name: 'California',
population: '39.14M',
// https://commons.wikimedia.org/wiki/File:Flag_of_California.svg
flag: 'https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg'
}, {
name: 'Florida',
population: '20.27M',
// https://commons.wikimedia.org/wiki/File:Flag_of_Florida.svg
flag: 'https://upload.wikimedia.org/wikipedia/commons/f/f7/Flag_of_Florida.svg'
}, {
name: 'Texas',
population: '27.47M',
// https://commons.wikimedia.org/wiki/File:Flag_of_Texas.svg
flag: 'https://upload.wikimedia.org/wikipedia/commons/f/f7/Flag_of_Texas.svg'
}
];

constructor() {
this.filteredStates = this.stateCtrl.valueChanges.pipe(startWith(''),
map(state => state ? this._filterStates(state) : this.states.slice()));
}

private _filterStates(value: string): State[] {
const filterValue = value.toLowerCase();
return this.states.filter(state => state.name.toLowerCase().indexOf(filterValue) === 0);
}

在我的app.module.ts中,我在导入中有formsmodulereactiveformsmodule

如果您知道为什么这些选项没有出现在输入下方以及如何解决该问题,我们将不胜感激。

忘记添加了,这个子组件(自动完成)是由父组件调用的,如下。

<div>
...
<app-menu></app-menu>
...
</div>

最佳答案

修复了它,我缺少 Angular Material 提供的预构建主题。如果有人遇到同样的问题,只需添加

@import "~@angular/material/prebuilt-themes/indigo-pink.css";

到 styles.css

关于Angular 5+ Material 自动完成位置错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51194537/

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