如何从JQuery datepicker select调用Typescript函数

时间:2018-08-01 22:19:26

标签: angular typescript

如何从下面的选择中调用updateFunc。

ngAfterViewChecked() {
    $(".datepicker").datepicker({
      changeMonth: true,
      changeYear: true,
     onSelect: function (selected, evnt) {
        this.updateFunc(evnt);
      }
    });
}

updateFunc(evnt: any) {
    alert("hi");
}

这不起作用,我应该使用=>来调用另一个函数,this.function无法起作用?

1 个答案:

答案 0 :(得分:5)

您回答了自己的问题,但是是的,不是使用function标记来编写onSelect,而是使用箭头函数,该函数会将范围保留到调用它的位置。当您使用function关键字时,您正在创建一个新的作用域,其中this将引用该函数作用域内的变量。

箭头功能是解决问题的方法,但是在创建这些功能之前,一些较旧的方法可能会使用.bind(this)或进行类似的操作。

let self = this;  // create a reference to 'this' above isolate scope.
onSelect: function(selected,evnt){
    self.updateFunc(event)
};

使用箭头功能,您不必这样做,只需执行以下操作:

onSelect:(selected,evnt) => { //arrow function passes the this into the new scope
    this.updateFunc(event)
}