如何使用“注入令牌”(或其他方法)覆盖“角度材质”默认选项

时间:2019-11-21 21:37:45

标签: javascript angular dependency-injection angular-material

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 answerthis 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_HEIGHTAUTOCOMPLETE_PANEL_HEIGHT,因此这一定是错误的。

文档指定必须使用“注入令牌”,但是我所看过的示例和Material文档本身都不类似于the Angular documentation on InjectionToken。是否以某种与注入令牌相关的方式将其放入MatAutocompleteDefaultOptions数组中?非常模糊。

在其providers部分中,许多材料成分表明可以实现这种行为,所以:

如何使用这些提供程序/注入令牌来修改默认选项?

1 个答案:

答案 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;

希望这会有所帮助。