The Angular Material documentation indicates,某些默认选项可以使用“注入令牌”覆盖:
常量
try { ArrayList<String> A = new ArrayList<String>(); Class.forName("com.mysql.jdbc.Driver"); Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/employees", "root", "123456"); Statement stmt = con.createStatement(); ResultSet rs = stmt.executeQuery("SELECT Password FROM workers"); while(rs.next()) { A.add(rs.getString("Password")); } con.close(); } catch (Exception e) { System.out.println(e); }
要使用的注入令牌 覆盖
MAT_AUTOCOMPLETE_DEFAULT_OPTIONS
的默认选项。mat-autocomplete
它看起来可以显示面板高度,选项高度和其他一些选项。但是,如何执行它有点模糊。我一直在引用this SO answer和this guide,但我觉得自己越来越近了,但仍然无法正常工作。这是我目前所在的位置:
const MAT_AUTOCOMPLETE_DEFAULT_OPTIONS: InjectionToken<MatAutocompleteDefaultOptions>;
import { MAT_AUTOCOMPLETE_DEFAULT_OPTIONS, MatAutocompleteDefaultOptions } from '@angular/material';
const appearance: MatAutocompleteDefaultOptions = {
// here I would like to override `AUTOCOMPLETE_OPTION_HEIGHT` and `AUTOCOMPLETE_PANEL_HEIGHT`
};
@Component({
selector: 'app-search',
templateUrl: './search.component.html',
styleUrls: ['./search.component.scss'],
providers: [
{
provide: MAT_AUTOCOMPLETE_DEFAULT_OPTIONS,
useValue: appearance,
},
],
export class SearchComponent { /* etc. */ }
接口上似乎不存在属性AUTOCOMPLETE_OPTION_HEIGHT
和AUTOCOMPLETE_PANEL_HEIGHT
,因此这一定是错误的。
文档指定必须使用“注入令牌”,但是我所看过的示例和Material文档本身都不类似于the Angular documentation on InjectionToken。是否以某种与注入令牌相关的方式将其放入MatAutocompleteDefaultOptions
数组中?非常模糊。
在其providers
部分中,许多材料成分表明可以实现这种行为,所以:
答案 0 :(得分:1)
您可以尝试通过更改面板的CSS样式来尝试。 查看此https://github.com/angular/components/issues/3810来设置面板高度。 由于MatAutocompleteDefaultOptions只有一个属性,我认为您不能更改其他属性。
并且我看到参数声明为常量,因此您可以尝试通过更改CSS样式来尝试。
/** The height of each autocomplete option. */
export declare const AUTOCOMPLETE_OPTION_HEIGHT = 48;
/** The total height of the autocomplete panel. */
export declare const AUTOCOMPLETE_PANEL_HEIGHT = 256;
希望这会有所帮助。