Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 主干事件聚合器在第一视图初始化时不触发事件_Backbone.js_Backbone Events - Fatal编程技术网

Backbone.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

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

我的设置如下:

我在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将登录的服务器绑定到启动套接字。最后,用户被重定向到索引视图。然后就如我上面所述发生了。

我不知道如何跟踪错误。在initialize()时,它可以无缝地执行整个事务:trigger和listenTo,或者在initialize()时完全忽略它。是的,调用initialize,然后调用this.listenTo(this.socketEvents,“one:event”,this.doThis());是的,对不起,我错了,我的意思是“这个。这个”。