如何使用backbone.js创建搜索表单

时间:2017-05-15 10:37:37

标签: jquery backbone.js backbone-views backbone-events backbone-collections

我第一次使用Backbone.js,试图了解它是如何工作的。我想制作一个搜索表单,但我仍处于起点。

这是我的输入搜索框

<input type="txt" name="" class="mysearch">

,当我在此搜索框中输入时,我想打印一些内容(在控制台上)。 但它没有按预期工作。

jQuery(document).ready(function(){
var mymodel= Backbone.Model.extend({
    defaults:function(){
        return{
        name:''
        }
    }
});

var mycollection=Backbone.Collection.extend({
    model:mymodel
});
var mynewcollection= new mycollection();
var myview=Backbone.View.extend({
    model:mynewcollection,

    el:'.mysearch',
    initialize:function(){
        console.log("initialize");            
    },
    events:{
        'keypress .mysearch':'search'
    },
    search:function(){
        console.log("at search");
    }
});
new myview;
    console.log("starting");
});    

我错过了什么,我不知道。对于愚蠢的问题,任何帮助都会受到赞赏和抱歉。

1 个答案:

答案 0 :(得分:2)

您可以通过.mysearch将视图的上下文设置为el:'.mysearch',同时尝试在视图范围内侦听.mysearch元素发出的事件。您基本上是在尝试收听.mysearch .mysearch元素,这显然不适用于您的设置。

尝试

var myview=Backbone.View.extend({  
    el:'.mysearch',
    initialize:function(){
        console.log("initialize");            
    },
    events:{
        'keypress':'search'
    },
    search:function(){
        console.log("at search");
    }
});

演示https://jsfiddle.net/9kwhw5yj/