将不相关的输入字段映射到BackBone View

时间:2014-02-04 09:24:46

标签: javascript backbone.js

我有这个BackBone视图:

window.GDataTableView = Backbone.View.extend({
    initialize: function() {
        _.bindAll(this, 'render', 'Added', 'Removed' );

        notifications.bind('add',    this.Added );
        notifications.bind('remove', this.Removed );

        Entry.bind('change:Rotation', this.Triangle);

    },
    events: {
      'keypress #my_input_text_box' : "foo"
    },
    foo: function(){
      alert('bar');
    },
...
..
.

这是一个相当简单的视图,但我想在我的输入字段中分配一个按键事件。它只是位于页面中的某个文本字段。现在,当我按下输入字段中的某个键时没有任何反应。没有任何警报。

我做错了吗?

1 个答案:

答案 0 :(得分:2)

events对象的范围限定为当前视图,因此它不会绑定到您想要的输入(因为它不在视图中)。相反,做

initialize: function() {
    // your original code

    $("#my_input_text_box").on("keypress", this.foo);
},

换句话说,您可以在视图实例化时定义事件侦听器。

根据您的使用情况,您可能需要在视图被销毁时处理解除绑定事件。