我想在click事件上调用方法,并使用angular4在ngOnInit()上绑定click事件。我的要求是在我已经完成的跨度上绑定click事件,但是当我使用if条件调用我的其他方法时,就会给我错误error.getSellingChats不是控制台中的函数。这是我的代码
ngOnInit() {
this.scrollToBottom();
this.getallChats();
this.checkConnection();
setTimeout(() => {
this.bindClickevents();
}, 3000);
}
bindClickevents(){
$('tabset ul li a').find('span').bind('click',function(event){
var _tab = $(this).text();
if(_tab == 'ALL'){
this.getallChats();
}
else if(_tab == 'SELLING'){
this.getSellingChats();
}
else if(_tab == 'BUYING'){
this.getBuyingChats();
}
else if(_tab == 'BLOCKED'){
this.getBlockedChats();
}
});
}
基本上我要实现的是在span上绑定click事件,然后用户单击根据if条件调用的不同选项卡方法。我不想在ngOnInit()方法中调用以下方法。
this.getSellingChats();
this.getBuyingChats();
this.getBlockedChats();
请为我提供解决方案。将不胜感激。
答案 0 :(得分:2)
this
不是find
方法中组件的引用。像下面那样尝试。
bindClickevents(){
const comp = this;
$('tabset ul li a').find('span').bind('click',function(event){
var _tab = $(this).text();
if(_tab == 'ALL'){
comp.getallChats();
}
else if(_tab == 'SELLING'){
comp.getSellingChats();
}
else if(_tab == 'BUYING'){
this.getBuyingChats();
}
else if(_tab == 'BLOCKED'){
comp.getBlockedChats();
}
});
}