Backbonejs下划线限制功能不会触发

时间:2013-11-10 21:35:11

标签: javascript backbone.js underscore.js backbone-events

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

我之前的油门功能正在开火,我正在获取日志('节流前')。但是,实际过滤器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');
    }
});

2 个答案:

答案 0 :(得分:11)

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

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

你会扼杀一次,你会得到你期待的结果。

答案 1 :(得分:3)

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

filterByTitleThrottled:function(){
    console.log('before throttle');
    var trottle = _.throttle(this.filterByTitle, 100);
    trottle();
}