0

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

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

            });

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

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

4

1 回答 1

1

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

  1. 当在视图中定义处理程序事件时,验证代码是否有效:

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

    在这一步检查是否从您的视图触发了此事件。如果未触发,则说明您的触发方式有问题。在您的触发线放置一个断点并进行调试 - 检查您是否在您的情况下到达该行。

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

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

于 2013-08-30T17:42:48.257 回答