Przechodzi przez bardzo prosty samouczek dotyczący widoków backbone.js.Zdarzenie clickboks.js nie odpala
Oczekiwane zachowanie polega na wywołaniu funkcji renderowania po kliknięciu przycisku #sayhello. Render po prostu używa metody html jQuery do wstawienia "hello Bud Abbota" w el.
Po kliknięciu przycisku #sayhello nic się nie dzieje. Bez błędów i niczego. Ustawiam punkt przerwania w firebugu i oglądam go po prostu pomijając funkcję renderowania.
oto 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;
});
A oto 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>
Co dziwne jest to, kiedy to zmienić:
new HelloWorldView({name: 'Bud Abbot'});
do tego:
new HelloWorldView({name: 'Bud Abbot'}).render();
Metoda renderowania jest wywoływana, ale gdy próbuję zrobić to zdarzenie - nie ma kości. Każda pomoc w zrozumieniu tego, co robię źle, jest bardzo doceniana.
woot! dziękuję – tim
dzięki! podstawowe i nadal to zapominam –