Angular 禁用ngbDatepicker输入

Angular 禁用ngbDatepicker输入,angular,angular2-forms,angular2-directives,ng-bootstrap,Angular,Angular2 Forms,Angular2 Directives,Ng Bootstrap,我正在使用ngbDatepicker和ng2日期选择器jalali。我使用ngbDatepicker指令,如下所示: <div class="input-group" dir="ltr"> <input class="form-control" placeholder="yyyy/m/d" name="dp" [(ngModel)]="registerDate" ngbDa

我正在使用
ngbDatepicker
ng2日期选择器jalali
。我使用
ngbDatepicker
指令,如下所示:

   <div class="input-group" dir="ltr">
      <input class="form-control" 
          placeholder="yyyy/m/d" 
          name="dp" 
          [(ngModel)]="registerDate" 
          ngbDatepicker 
          [firstDayOfWeek] = "6"
          [disabled]="disabled"
          #d="ngbDatepicker" >
          <button class="input-group-addon" (click)="d.toggle()" type="button">
              <i class="fa fa-calendar"></i>
          </button>
    </div>

我正试图禁用输入以强制从日期选择器中选择日期<代码>[disabled]=“disabled”attr禁用整个日期选择器

您可以使用:

[readonly]="true"
上,其作用是将输入转换为只读输入,这意味着用户将被迫使用日期选择器进行选择:

<div class="input-group" dir="ltr">
  <input class="form-control" 
    placeholder="yyyy/m/d" 
    name="dp" 
    [(ngModel)]="model" 
    ngbDatepicker 
    [firstDayOfWeek] = "6"
    [readonly]="true"
    #d="ngbDatepicker" >
    <button class="input-group-addon" (click)="d.toggle()" type="button">
      <i class="fa fa-calendar"></i>
    </button>
</div>

唯一的问题是,如果不删除输入中的文本,我无法找到清除日期选择器的方法,因此如果需要,您可能需要实现一个按钮来清除日期:

<button (click)="clear()" type="button">Clear</button>

public clear(): void {
  this.model = undefined;
}
清除
公共清除():无效{
this.model=未定义;
}

这里有一个演示:

@lan太棒了!这很有效。是的,你是对的,我需要一个按钮来清除日期选择器。这将导致输入看起来像是被禁用的(灰显)。我使用了一种将背景色设置为白色的方法,使用日期选择器进行输入。