Backbone事件聚合器在第一次视图初始化时不会触发事件

时间:2013-11-19 18:10:17

标签: backbone.js backbone-events

我试图在我的视图中初始化时触发一些事件。如果我在浏览器中来回或者我加载第二个视图,但是在第一次加载时没有,即当用户登陆视图时,它们可以工作。

我的设置如下:

我在router.js创建了一个事件聚合器,如:

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绑定登录以启动套接字。最后,用户是重定向器到索引视图。然后它就像我上面描述的那样发生。

0 个答案:

没有答案