0

我在 Angular Datepicker 中检索一些禁用的日期时遇到问题,

当我对日期进行硬编码时,我没有问题,一切正常,

但是当我从我的 web api 后端检索禁用日期时,禁用日期被忽略...

我仍然是编程的菜鸟,我可能错过了一些愚蠢的东西

是关于异步编程还是可观察变量?

组件.html

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

组件.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" ]
  }
}
4

1 回答 1

0

Finnaly 我找到了解决方案,但我不确定解决方案的质量如果有人有更好的解决方案,我将不胜感激 =)

我刚刚制作了另一个 var 并将后端的结果放入其中,之后我循环进入响应数组直到最后并将每个结果推送到我的 main 变量中。

我很确定这不是正确的方法,但目前,我没有找到更好的解决方案

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])

        }
  }
}
于 2019-05-01T19:19:12.473 回答