trigger事件在backbone.js中不起作用



实际上,我正在开发一个应用程序,其中使用了以下框架。

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 ");
            });

但问题是这个处理程序没有被调用。现在如何调试这个其实我是新骨干。

我在谷歌上搜索过,但找不到任何帮助。

作为调试的一种方式,我将执行以下步骤:

  1. 验证在View:中定义处理程序事件时代码是否工作

    var MemberRegistrationView = Backbone.View.extend({
      ...
      initialize: function() {
        this.on("memRegForm:submit", function(data) {
                    console.log("member submit event ");
                });
      }
      ...
    });
    

    在此步骤中,检查此事件是否是从您的视图中触发的。如果没有被触发,那就是你的触发方式出了问题。在您的触发器行上放置一个断点,然后进行调试,检查您是否达到了该行。

  2. 如果以前的代码正在工作,那么当处理程序事件在视图之外定义时,就会出现问题。我将做下一件事:验证事件是否在视图对象上注册——这可以在视图对象的_events属性中看到。

仅供参考-在主干网中,您有Events模块,它可以混合在每个对象中。View对象已经有了它。此模块的功能可以在http://backbonejs.org/#Events

相关内容

  • 没有找到相关文章

最新更新