实际上,我正在开发一个应用程序,其中使用了以下框架。
Backbone.js
Handlebar.js
Marionette.js
Require.js
事实上,我不知道如何调试这个问题。
我在视图MemberRegistrationView
中有一个触发事件,类似于此
this.trigger("memRegForm:submit", memRegisFormData);
现在,在这个MemberRegistrationView对象的控制器中,我已经在控制器中写入了这个处理程序。
memberRegistrationView.on("memRegForm:submit", function(data) {
console.log("member submit event ");
});
但问题是这个处理程序没有被调用。现在如何调试这个其实我是新骨干。
我在谷歌上搜索过,但找不到任何帮助。
作为调试的一种方式,我将执行以下步骤:
-
验证在View:中定义处理程序事件时代码是否工作
var MemberRegistrationView = Backbone.View.extend({ ... initialize: function() { this.on("memRegForm:submit", function(data) { console.log("member submit event "); }); } ... });
在此步骤中,检查此事件是否是从您的视图中触发的。如果没有被触发,那就是你的触发方式出了问题。在您的触发器行上放置一个断点,然后进行调试,检查您是否达到了该行。
-
如果以前的代码正在工作,那么当处理程序事件在视图之外定义时,就会出现问题。我将做下一件事:验证事件是否在视图对象上注册——这可以在视图对象的_events属性中看到。
仅供参考-在主干网中,您有Events模块,它可以混合在每个对象中。View对象已经有了它。此模块的功能可以在http://backbonejs.org/#Events