angular4中的事件绑定

时间:2018-07-26 09:34:08

标签: jquery angular typescript

我想在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();

请为我提供解决方案。将不胜感激。

1 个答案:

答案 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();
        }
    });
    }