角度材料2日期选择器自动打开焦点

meh*_*ran 28 angular-material2 angular

棱角材料2日期选择器如何配置为在焦点上自动打开?我在https://material.angular.io/components/datepicker/overview的文档中找不到任何内容.

目前的HTML是这样的:

 <input [mdDatepicker]="myDatepicker" id="inputWeekEnding" name="inputWeekEnding" type="text" class="form-control" show-button-bar="false"
      [(ngModel)]="weekEnding" [mdDatepickerFilter]="weekEndingPickerFilter" (ngModelChange)="weekEndingChanged()"
              required>
<span class="input-group-btn">
  <button type="button" class="btn btn-default" [mdDatepickerToggle]="myDatepicker">
    <i class="glyphicon glyphicon-calendar"></i>              
  </button>
</span>
<md-datepicker #myDatepicker md-open-on-focus ></md-datepicker>
Run Code Online (Sandbox Code Playgroud)

Pen*_*gyy 45

mdDatepicker提供方法open()以便手动打开它开发人员.你可以在md-input焦点事件中调用它.请参阅docs(MatDatepicker方法).

<md-input-container>
  <input mdInput [mdDatepicker]="picker" (focus)="picker.open()" placeholder="Choose a date">
  <button mdSuffix [mdDatepickerToggle]="picker"></button>
</md-input-container>
<md-datepicker #picker></md-datepicker>
Run Code Online (Sandbox Code Playgroud)

演示(包括开放焦点和打开打字稿的演示)


j3f*_*3ff 19

根据@ angular/material2 v7.0.1,我已经能够正确处理输入焦点...

  • 添加(focus)="picker.open()"matInput输入元件来触发焦点的日期选择器开口
  • 添加(closed)="input.blur()"mat-datepicker元件所以一旦日期选择关闭它可以删除集中在输入
<mat-form-field>
  <input matInput #input [matDatepicker]="picker" (focus)="picker.open()" formControlName="yourControlName">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker (closed)="input.blur()"></mat-datepicker>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)

  • 这应该是公认的答案。其他答案缺少`(closed)=“ input.blur()”`选项。 (3认同)

Dav*_*bec 5

对于新的 Angular & Material(5 及以上),它应该是这样的。有问题的链接指向最新文档,但使用 Angular 2 中的代码,这可能会让新手感到困惑。

<mat-form-field>
      <input matInput [matDatepicker]="picker" (focus)="picker.open()" formControlName="yourControlName">
      <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
      <mat-datepicker #picker></mat-datepicker>
</mat-form-field>
Run Code Online (Sandbox Code Playgroud)

  • 我尝试了这个,但是当我关闭日期选择器时,需要在页面上的其他位置单击两次才能“散焦”相关的 &lt;input&gt; 家伙... Oo (2认同)