Backbone.js 主干事件聚合器在第一视图初始化时不触发事件
我试图在视图中初始化时触发一些事件。如果我在浏览器中来回移动,或者加载第二个视图,但不是在第一次加载时,即当用户在视图中着陆时,它们会工作 我的设置如下: 我在router.js上创建了一个事件聚合器,如:Backbone.js 主干事件聚合器在第一视图初始化时不触发事件,backbone.js,backbone-events,Backbone.js,Backbone Events,我试图在视图中初始化时触发一些事件。如果我在浏览器中来回移动,或者加载第二个视图,但不是在第一次加载时,即当用户在视图中着陆时,它们会工作 我的设置如下: 我在router.js上创建了一个事件聚合器,如: socketEvents: _.extend({}, Backbone.Events) 然后我将聚合器传递给每个视图,如下所示: index: function() { this.changeView(new IndexView({socketEvents:this.socke
socketEvents: _.extend({}, Backbone.Events)
然后我将聚合器传递给每个视图,如下所示:
index: function() {
this.changeView(new IndexView({socketEvents:this.socketEvents}));
},
然后在index.js中,我会这样做:
initialize: function(options) {
this.socketEvents = options.socketEvents;
this.socketEvents.trigger('one:event');
},
正如我所说,如果刷新页面无效,如果我移动到另一个视图并在浏览器中回击,则会触发事件
为什么会这样?我怎样才能解决这个问题
谢谢
第一次评论后编辑:
没有我能/知道如何跟踪的错误。在initialize()时,它要么无缝地执行整个事务:trigger和listenTo,要么在initialize()时完全忽略它。执行顺序如下:
我使用require引导应用程序,从那里它将用router和socket.io客户端加载一个类。然后,它初始化socket.io客户端并使用路由器事件聚合器。然后它检查用户是否已登录,如果已登录,则会触发一个router.event,表示用户已登录。在socket.io客户机上,有一个event.Dispatcher将登录的服务器绑定到启动套接字。最后,用户被重定向到索引视图。然后就如我上面所述发生了。我不知道如何跟踪错误。在initialize()时,它可以无缝地执行整个事务:trigger和listenTo,或者在initialize()时完全忽略它。是的,调用initialize,然后调用this.listenTo(this.socketEvents,“one:event”,this.doThis());是的,对不起,我错了,我的意思是“这个。这个”。