如何从下面的选择中调用updateFunc。
ngAfterViewChecked() {
$(".datepicker").datepicker({
changeMonth: true,
changeYear: true,
onSelect: function (selected, evnt) {
this.updateFunc(evnt);
}
});
}
updateFunc(evnt: any) {
alert("hi");
}
这不起作用,我应该使用=>来调用另一个函数,this.function无法起作用?
答案 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)
}