3

我想过滤骨干集合。因此,我想限制 keyup 事件并在用户完成键入或暂停时触发。

我的油门前功能正在触发,我正在获取日志('油门之前')。但是,实际的过滤器 filterByTitle 没有触发。有什么建议吗?

linkApp.Views.FilteredLinks = Backbone.View.extend({

    el:'#divFilter',

    events:{
        'keyup #filterTitle': "filterByTitleThrottled"
    },

    initialize:function(){          
    },

    render:function(){
    },      

    filterByTitleThrottled:function(){
        console.log('before throttle');
        _.throttle(this.filterByTitle, 100);
    },
    filterByTitle:function(){
        console.log('actual filter by title');
    }
});
4

2 回答 2

11

我认为最好在初始化时 _.throttle this.filterByTitle 以使其正常工作。

initialize:function(){
      this.filterByTitle = _.throttle(this.filterByTitle, 100);
},

你会限制它一次,你会得到你期望的结果。

于 2013-11-10T22:12:36.050 回答
3

当您调用_.throttle- 它创建并返回传递函数的新版本。在此之后你可以使用她:

filterByTitleThrottled:function(){
    console.log('before throttle');
    var trottle = _.throttle(this.filterByTitle, 100);
    trottle();
}
于 2013-11-10T21:52:51.860 回答