调试 Ember JS -- 识别导致错误的代码行

Debugging Ember JS -- Identifying line in code that causes an error

所以我收到以下错误:

未捕获错误:断言失败:提供给get的键必须是字符串,你传递了undefined

如果我的代码中有任何指示导致该错误的行,应该很容易修复。

使用 chrome 控制台,我单击错误旁边的 ember.debug.js:6254,它只显示引发错误的 ember 代码。我可以扩展错误,但我只是得到一堆无法点击的功能,并且没有指示它们来自哪里。

谁能帮我弄清楚如何识别我的 Ember 代码中导致错误的行。

通常在软件开发中调试时,您最好的朋友将是 console.log()alert()(在 JavaScript 的情况下)。通常你必须弄清楚你是否得到了你通过控制台记录传递给你的功能的一切,直到你找到你的错误。 Ember 有时不会告诉您确切的错误是什么,因为不知道确切的错误来源。

...计算机很烦人,但我们喜欢它们....

这里有一些来自 Mozilla developer and Google 的关于如何调试 JavaScript 的文章。

我以前遇到过这个错误。当您以任何形式(Ember.get()this.get()get(this))调用 get() 而没有字符串作为您想要的 属性 的名称时,就会发生这种情况检索。

您应该能够找到错误的来源,方法是在您调用 get() 的任何地方审核您的应用程序并确保将 属性 名称作为字符串传递。例如,Ember.get('model.someProp')this.get('someProp')get(this, 'someProp')

这应该是评论,但我不能,所以这里是: 我是 Ember 的新手,并且花了很长时间进行调试。请记住 chrome 的控制台显示的一长串函数调用。 查找 ember.debug.js 以外的任何内容...尤其是那些标记(匿名函数)和名称为 vendor.js 或 app-name.js

的文件

我的数据库中有一个 NULL 值,我没有在我的应用程序中考虑该值。在我的例子中,它一开始就不应该是 NULL,所以在我的数据库中为记录赋值后,问题就消失了。

我同意错误消息不是很有帮助。