Javascript Backbone.js视图不渲染
奇怪的事情正在发生。我有创建Backbone.js视图的代码,除非它永远不会被渲染,但是如果我在控制台中运行它,它会工作:Javascript Backbone.js视图不渲染,javascript,jquery,ajax,backbone.js,Javascript,Jquery,Ajax,Backbone.js,奇怪的事情正在发生。我有创建Backbone.js视图的代码,除非它永远不会被渲染,但是如果我在控制台中运行它,它会工作: function createBookingsView($container, roomID){ var BookingsView = Backbone.View.extend({ el : $container, initialize : function(){
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中被调用,等等?我正在使用JQueryMobile,所以它在pagebeforeshow事件中被调用。我知道它会被调用,因为window.LEFT_预订已分配,我可以从控制台访问它。除非我在控制台中像这样键入视图,否则不会呈现该视图:window.LEFT_BOOKINGS=createBookingsView$timeline-a.bookingContainer,2;好的,我做了一些调查,结果表明$timeline-a.bookingContainer在我调用CreateBookingView时还不在DOM中。所以这可能是另一个问题。