Отключенная дата не работает, когда даты получены из бэкэнда |Угловой Datepicker - PullRequest
0 голосов
/ 01 мая 2019

У меня проблема с получением некоторых отключенных дат в угловом Datepicker,

когда я жестко кодирую даты, у меня нет проблем, все работает нормально,

но когда я получаю отключенные даты из моего веб-интерфейса API, отключенные даты игнорируются ...

Я все еще новичок в программировании, возможно, мне не хватает чего-то глупого

Это что-то про асинхронное программирование или наблюдаемые переменные?

component.html

<input type="text" placeholder="Daterangepicker" class="form-control" bsDaterangepicker
      [datesDisabled]="disabledDates">

component.ts

export class Component implements OnInit {
  disabledDates :Date[];
  constructor(...) { }

  ngOnInit() {
      ...
      this.getUnavaibilities();
  }


  getUnavaibilities(){
    this.homesService.getUnavaibilities(this.Id).subscribe(
      reponse => this.UnavailabilitieshandleSuccesfulResponse(reponse));
  }
  UnavailabilitieshandleSuccesfulResponse(reponse){
    this.disabledDates = reponse;
    console.log(this.disabledDates) // this working fine !
   //output from console.log
   // Array(4) [ "2019-09-27T00:00:00", "2019-09-28T00:00:00", "2019-09- 
   //29T00:00:00", "2019-09-30T00:00:00" ]
  }
}

1 Ответ

0 голосов
/ 01 мая 2019

В Финляндии я нашел решение, но я не уверен насчет качества решения. Если кто-нибудь найдет лучшее решение, я буду благодарен =)

Я просто сделал еще одну переменную var и поместил в нее результат бэкэнда. После этого я зацикливаюсь на массиве ответа до конца и помещаю каждый результат в свою основную переменную.

Я не уверен, что это неправильный способ сделать это, но на данный момент я не нашел лучшего решения

export class Component implements OnInit {

 disabledDates :Date[] = [];
  test :Date[];
  constructor(...) { }

  ngOnInit() {

      ...
      this.getUnavaibilities();
  }


  getUnavaibilities(){
    this.homesService.getUnavaibilities(this.Id).subscribe(
      reponse => this.UnavailabilitieshandleSuccesfulResponse(reponse));
  }
  UnavailabilitieshandleSuccesfulResponse(reponse){
    this.test = reponse;
    console.log(this.test)
    for (var i = 0; i< this.test.length;i++) // for acts as a foreach
        {
            this.disabledDates.push(new Date(this.test[i]))
            console.log(this.test[i])

        }
  }
}
...