用按钮打开材料日期选择器

时间:2021-02-10 10:03:08

标签: javascript angular typescript angular-material

我想用fa-icon打开材料日历。所以我是这样的:

  <div class="form-group row">
                <label for="start" class="editor-label col-sm-4"><strong> Time start:</strong></label>
                <input [(ngModel)]="start" [ngModelOptions]="{standalone: true}"
                 type="text" class="date" id="start" value="start">                
                <span class="ml-2" (click)= "reOpenCalender()">
                    <fa-icon [icon]="faCalendarAlt" size="1x"  #picker [styles]="{'color': '#B7B7B7'}"
                      ></fa-icon>
                </span>
            </div>

和这样的 ts 脚本:

reOpenCalender() {
    let self = this;
    setTimeout(() => {
      self.picker.open();
    }, 50);
  }

但我收到此错误:

core.js:4442 ERROR TypeError: self.picker.open is not a function
    at widget-editor.component.ts:65

如果我点击图标。

那么我必须改变什么?

谢谢

1 个答案:

答案 0 :(得分:2)

你给icon加了#picker,icon没有open方法。 单击图标后,您需要调用 datepicker 本身的 open 方法。 你应该有这样的东西:

  <span class="ml-2" (click)= "reOpenCalender()">
   <fa-icon [icon]="faCalendarAlt" size="1x"></fa-icon>
  </span>
  <mat-datepicker #picker></mat-datepicker>

请查看 documentation 了解更多信息。