关于 Ember 的调试,您可能已经阅读了这篇文章:https://guides.emberjs.com/release/configuring-ember/debugging/
在开发过程中,有一些很棒的功能可以打开,以获取更多底层信息。
您可以在您的 app.js 中插入:
var App = Ember.Application.extend({
LOG_TRANSITIONS_INTERNAL: true,
LOG_ACTIVE_GENERATION: true,
LOG_VIEW_LOOKUPS: true,
LOG_RESOLVER: true,
});
Ember.run.backburner.DEBUG = true;
Ember.ENV.RAISE_ON_DEPRECATION = true;
Ember.LOG_STACKTRACE_ON_DEPRECATION = true;
Ember.LOG_BINDINGS = true;
Ember.RSVP.on('error', function(error) {
Ember.Logger.assert(false, error);
});
如果你在代码中写入debugger
,就可以停止你的代码。我经常使用它来弄清楚发生了什么。
关于你的问题,如果你扩展一个Ember类,它基本上会创建一个新的函数,但作为扩展类的子类行为。你可以检查那里发生了什么:https://github.com/emberjs/ember.js/blob/v1.7.0/packages/ember-runtime/lib/system/core_object.js#L536-L556
当你运行你的Ember应用程序时,你的应用程序将被包装在一个容器中,因此如果你需要访问属性或变量,你必须使用这个 - 假设你的应用程序名称是“App”:
App.__container__.lookup("controller:application").get("currentRouteName")
App.__container__.lookup("controller:application").get("currentPath")
App.__container__.lookup("controller:application").get("model")
了解如何调试你的Ember应用可能需要一些时间,但是学习并投入更多时间是值得的,因为以后会非常方便。
如果您有任何问题,请不要犹豫评论,我们可以解决它。
关于调试器;
它就像一个断点,你可以停止代码执行。在Chrome中必须打开"检查元素"/"开发者工具"。这里有一个简单的例子: http://jsbin.com/cugetoxoyira/45
源代码: http://jsbin.com/cugetoxoyira/45/edit
在第18行,有一个debugger;
,所以你可以在控制台中检查控制器或模型参数。在Chrome的开发者工具中,只需输入controller
即可。
debugger
?这是类似于断点吗?是的,完全理解 Ember 确实需要时间,我正在投入时间和精力。希望它会有所回报(担心)。 - olanchuy