Estoy tratando de familiarizarme con CoffeeScript y backbone.js, y me falta algo.¿Por qué mis eventos CoffeeScript/backbone.js no se activan?
Este CoffeeScript:
MyView = Backbone.View.extend
events: {
"click" : "testHandler"
}
testHandler: ->
console.log "click handled"
return false
view = new MyView {el: $('#test_container')}
view.render()
genera el siguiente JavaScript:
(function() {
var MyView, view;
MyView = Backbone.View.extend({
events: {
"click": "testHandler"
},
testHandler: function() {
console.log("click handled");
return false;
}
});
view = new MyView({
el: $('#test_container')
});
view.render;
}).call(this);
Pero el evento no se dispara click
testHandler
cuando hago clic en test_container
.
Si cambio de la salida JavaScript para:
$(function() {
var MyView, view;
MyView = Backbone.View.extend({
events: {
"click": "testHandler"
},
testHandler: function() {
console.log("click handled");
return false;
}
});
view = new MyView({
el: $('#test_container')
});
view.render;
});
Extracción de la call(this)
y añadiendo el $
, todo funciona como se esperaba. ¿Qué me estoy perdiendo?
Parece que estás usando jQuery. ¿Desea agregar la etiqueta jQuery? – Angiosperm