调试BackboneJS + RequireJS实例变量,如集合,模型等

时间:2013-06-04 13:58:20

标签: javascript backbone.js requirejs

一旦将RequireJS添加到BackboneJS应用程序中,我就无法访问chrome控制台中的实例变量。

以下是示例:

只有BackboneJS:http://todomvc.com/architecture-examples/backbone/

打开chrome控制台并输入键(窗口)以查找各种BackboneJS脚本中使用的实例变量“app”:

// instance variable app is also found under window
keys(window)
["top", "window", "location", "external", "chrome", "Intl", "v8Intl", "document", "_gaq", "_gat", "gaGlobal", "$", "jQuery", "_", "Backbone", "Store", "app", "jQuery191046978461160324514", "ENTER_KEY", "css", "cssFile", "cssRule"]

// debug the app object with Collections, Models, Views, Routers, etc
app
Object {Todo: function, todos: child, TodoView: function, AppView: function, TodoRouter: child…}
AppView: function (){ return parent.apply(this, arguments); }
Todo: function (){ return parent.apply(this, arguments); }
TodoFilter: ""
TodoRouter: child
TodoView: function (){ return parent.apply(this, arguments); }
todos: child
__proto__: Object

BackboneJS + RequireJS:http://todomvc.com/dependency-examples/backbone_require/

打开chrome控制台并输入键(窗口)并尝试找出BackboneJS的实例变量,类似于前面的示例:

keys(window)
["top", "window", "location", "external", "chrome", "Intl", "v8Intl", "document", "_gaq", "requirejs", "require", "define", "_gat", "gaGlobal", "_", "$", "jQuery", "css", "cssFile", "cssRule", "Backbone", "Store", "jQuery191032673427602276206"]

// I cant debug the BackboneJS object when it is used with RequireJS

如何使用RequireJS访问BackboneJS应用程序中的相同实例变量“app”?

使用RequireJS时,有没有办法访问Backbone应用程序的集合,模型,视图,路由器等?

我无法解决这个问题,因为一周以后,有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

要求的全部要点是将东西排除在全局范围之外(好吧,也许不是整个点,但它是主要关注点)。如果您想使用Require-ed模块,则必须通过Require。

将其带入

您已加载相关模块的 IF 的语法是:

var app = require('path/to/module');

您应该可以使用它来从调试器访问任何需要的文件。

答案 1 :(得分:0)

使用Chrome的Backbone Debugger扩展程序。它支持RequireJS。

或者,暂时将变量移动到脚本中的全局范围:

window.app = /* a variable you need access to */