1

Ich arbeite zum ersten Mal mit Backbone.js und versuche, meinen Kopf herum zu bekommen, wie es funktioniert. Ich möchte eine Suchmaske erstellen, aber ich bin am Ausgangspunkt fest.Wie mache ich ein Suchformular mit backbone.js?

Hier ist meine Eingabe Suchfeld

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

, und ich will etwas (auf Konsole) drucken, wenn ich in diesem Suchfeld eingeben. aber es funktioniert nicht wie erwartet.

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"); 
});  

Was fehlt mir, ich weiß es nicht. Jede Hilfe würde geschätzt und tut mir leid für dumme Frage.

Antwort

1

Sie setzen den Kontext für Ihre Ansicht als .mysearch über el:'.mysearch' und gleichzeitig versuchen, die Ereignisse von .mysearch Element unter dem Ansichtsbereich zu hören. Sie versuchen grundsätzlich, ein .mysearch .mysearch Element zu hören, und das wird offensichtlich nicht in Ihrem Setup funktionieren.

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

Und eine Demo https://jsfiddle.net/9kwhw5yj/

+1

Dank @nikoshr seine Arbeit für mich versuchen und ich endlich den Punkt – Ganesh