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

时间:2013-08-30 11:42:30

标签: jquery backbone.js event-handling requirejs eventtrigger

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

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

            });

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

我在Google上搜索过但无法找到任何帮助。

1 个答案:

答案 0 :(得分:1)

作为一种调试方式,我会采取以下步骤:

  1. 在View:

    中定义处理程序事件时验证代码是否有效
    var MemberRegistrationView = Backbone.View.extend({
      ...
      initialize: function() {
        this.on("memRegForm:submit", function(data) {
                    console.log("member submit event ");
    
                });
      }
      ...
    
    });
    

    在此步骤中,检查是否从您的视图触发了此事件。如果没有被触发,那么你的触发方式就会出现问题。在你的触发线上放置一个断点并进行调试 - 检查你的情况是否达到了这一行。

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

  3. 仅供参考 - 在主干中你有可以在每个对象中混合的事件模块。 View对象已经拥有它。可以在http://backbonejs.org/#Events

    查看此模块的功能