将输入集中在自定义Angular MatFormFieldControl中

时间:2018-11-06 18:27:06

标签: angular angular6 angular7

如何在页面加载*上自定义asset1内的MatFormFieldControl输入字段上显示父组件?

父组件HTML:

    <mat-form-field class="symbol">
      <symbol-input
        name="symbol"
        placeholder="Symbol"
        ngModel
        #symbolInput="ngModel"
        [(ngModel)]="symbol"></symbol-input>
    </mat-form-field>

自定义MatFormFieldControl HTML:

<div [formGroup]="parts">
  <input class="asset1" formControlName="asset1" size="12">
  <span class="input-spacer">&frasl;</span>
  <input class="asset2" formControlName="asset2" size="12">
</div>

*我假设我将在父组件中实现AfterViewInit,并希望触发一个focus事件,该事件会逐渐滴落?

1 个答案:

答案 0 :(得分:0)

@ IvanS95为我指明了正确的方向。

在我的父组件中添加了ViewChild

@ViewChild(SymbolInputComponent) set focus(sic: SymbolInputComponent) {
    sic.autofocus = true;
};

然后我在自定义MatFormFieldControl中添加了一个设置为false的公共变量autofocus。如果我需要在给定页面上多次使用此字段。

然后我在autofocus模板中添加了MatFormFieldControl

<div [formGroup]="parts">
  <input class="asset1" formControlName="asset1" size="12" [autofocus]="autofocus">
  <span class="input-spacer">&frasl;</span>
  <input class="asset2" formControlName="asset2" size="12">
</div>