Repasando un tutorial muy básico sobre las vistas de backbone.js.backbone.js haga clic en el evento que no se activa
El comportamiento esperado es llamar a la función de procesamiento cuando se hace clic en el botón #sayhello. Render simplemente usa el método html de jQuery para poner "hello Bud Abbot" en el.
Pero cuando hago clic en el botón #sayhello, no pasa nada. Sin errores ni nada. Establecí un punto de interrupción en Firebug y miro cómo salta la función de renderizado.
Aquí está la JS:
App = (function($){
jQueryView = Backbone.View.extend({
initialize: function(){
this.el = $(this.el);
}
});
HelloWorldView = jQueryView.extend({
el: $('#helloworld'),
events:{ 'click #sayhello': 'render'
},
initialize: function(params){
jQueryView.prototype.initialize.call(this);
this.name = params.name;
},
render: function(){
console.log("rendering");
this.el.html("hello " + this.name);
}
});
var self = {};
self.start = function(){
new HelloWorldView({name: 'Bud Abbot'});
};
return self;
});
Y aquí está el html:
<div id="helloworld"></div>
<button id="sayhello">Say Hello</button>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/underscore.js/1.1.4/underscore-min.js"></script>
<script src="http://ajax.cdnjs.com/ajax/libs/backbone.js/0.3.3/backbone-min.js"></script>
Lo que parece extraño es cuando cambio esto:
new HelloWorldView({name: 'Bud Abbot'});
a esto:
new HelloWorldView({name: 'Bud Abbot'}).render();
se invoca el método de representación, pero cuando intento hacerlo con un evento, no hay dados. Cualquier ayuda para entender lo que estoy haciendo mal es muy apreciada.
¡woot! gracias – tim
gracias! básico y aún lo olvido –