В TextField при вводе @@ откройте средство выбора даты angular 2+ - PullRequest
1 голос
/ 23 марта 2020

У меня есть одно текстовое поле, когда введите @ , получите usersList, когда введите # , получите tagsList, а когда введите @@ открыть средство выбора даты, которое я использую ngx- bootstrap datepicker.

-Я пытался добавить динамически bsDatepicker оно успешно добавлено, но диалоговое окно DatePicker не получилось. Я думаю, что он не зарегистрирован в DOM идеально.

HTML

        <div *ngIf="addCard" class="mx-2">
        <input type="text" class="form-control" (keyup)="getVal()" id="input_2" [formControl]="cardName" >
           <ng-container *ngIf="drpBind">
            <div class="searchresults" *ngFor="let i of lstbindData; let index = index" (click)="selectVal(i)">{{i}}
            </div>
           </ng-container>
       </div>

TS

  lstbindData: any = [];
  addCard: boolean = false;
  drpBind: boolean = false;
  getDatePicker: boolean = false;
  cardName = new FormControl();

 getVal() {
  const val = this.cardName.value;
  console.log('val', val);
  const value = val == '@' ? 1 : val == '#' ? 2 : val == '@@' ? 3 : 4;
   if (value == 1) {
     this.drpBind = true;
     this.lstbindData = this._cS.getAtkeywords();
   }
   else if (value == 2) {
     this.drpBind = true;
     this.lstbindData = this._cS.getHaskeywords();
   }
   else if (value == 3) {
     this.drpBind = false;
     var getEle1 = document.getElementById('input_2'); 
     getEle1.setAttribute('bsDatepicker', ''); //I'm trying to setAttribute it added successfully but datepicker it not getting.
   }
    else {
      this.drpBind = false;
    }
 }

У кого-нибудь есть идея, пожалуйста, поделитесь ею.

Спасибо.

...