1
何か奇妙なことが起こっています。私は、私は、コンソールでそれを実行し、それが動作するただし場合、レンダリングされる決してそれを除いて、BACKBONE.JSビューを作成していないコードがある:Backbone.jsレンダリングされていないビュー
function createBookingsView($container, roomID){
var BookingsView = Backbone.View.extend({
el : $container,
initialize : function(){
console.log("derp");
_.bindAll(this, "addOne", "addAll", "render");
this.bookings = new Bookings();
this.bookings.bind("change", this.addOne);
this.bookings.bind("refresh", this.addAll);
this.bookings.bind("all", this.render);
this.bookings.fetch({data : {"room" : roomID}});
console.log(this.bookings.get(1));
},
addAll : function(){
this.bookings.each(this.addOne);
},
addOne : function(booking){
var view = new BookingView({model:booking});
$(this.el).append(view.render().el);
},
render : function(){
$(this.el).html("");
this.addAll();
}
});
return new BookingsView;
};
と相続人は、それがどのように呼ばれています:私は手動でコンソールで上記の行を実行すると
window.LEFT_BOOKINGS = createBookingsView($("#timetable-a .bookingContainer"), room.id);
は、それが見事に動作します。私のスクリプトには読み込まれません。
これはdocument.readyなどで呼び出されますか? – chris
私はJQueryMobileを使用しているので、 "pagebeforeshow"イベントで呼び出されます。 _window.LEFT_BOOKINGS_が割り当てられていて、コンソールからそれにアクセスできるので、呼び出されることがわかります。 ** window.LEFT_BOOKINGS = createBookingsView($( "#timetable-a .bookingContainer")、2); ** – sw00
大丈夫、私はいくつかの調査を行いました。 createBookingsViewを呼び出すと$( "#timetable-a .bookingContainer")がDOMにないことが分かります。だからおそらく別の問題です。 – sw00