功能不是功能吗?

时间:2019-01-16 14:03:49

标签: javascript angular typescript bootstrap-datepicker

我有一个小问题,因为我想在bootstrap-datepicker的选项中使用我的函数。我具有检查日期是否在日期数组中的功能:

isInArray(array, value) {
    return !!array.find(item => {
        return item.getTime() == value.getTime()
    });
}

我想在此选项(https://bootstrap-datepicker.readthedocs.io/en/latest/options.html#beforeshowmonth)中使用它,所以我将其置于选项中:

this.datepickerOptionsForMonths = {
    minViewMode: 1,
    format: "mm-yyyy",
    startDate: this.dateFrom,
    endDate: this.dateTo,
    beforeShowMonth: function (date: Date) {
       return this.isInArray(this.datepickerRange, date.getDate());
    }
};

现在是问题了,因为编译已完成,一切似乎都很好,但是随后在控制台中出现错误:

this.isInArray is not a function

也许问题是我已经在datepickerOptionsForMonths所在的同一正文中使用了此函数(在ngOnInit中)。有人可以帮我吗?

1 个答案:

答案 0 :(得分:6)

您正在更改beforeShowMonth函数的范围。

尝试改用箭头功能

beforeShowMonth: (date: Date) => 
  this.isInArray(this.datepickerRange, date.getDate())

箭头功能维护封闭对象的范围。您可以阅读更多有关here

的内容。