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

时间:2016-02-26 16:27:44

标签: javascript ember.js google-chrome-devtools ember-cli

所以我收到以下错误:

未捕获错误:断言失败:提供的密钥必须是字符串,您传递未定义

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

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

有人可以帮我弄清楚如何识别导致错误的Ember代码中的行。

4 个答案:

答案 0 :(得分:1)

我之前收到过这个错误。当您以任何形式(get()Ember.get()this.get())拨打get(this)而没有字符串作为您要检索的媒体资源的名称时,就会发生这种情况。

您应该能够通过审核应用程序来查找错误的来源,无论您在何处调用get(),并确保将属性名称作为字符串传递。例如,Ember.get('model.someProp')this.get('someProp')get(this, 'someProp')

答案 1 :(得分:0)

通常在软件开发中调试最好的朋友时会是console.log()alert()(在JavaScript的情况下)。通常你必须弄清楚你是否得到了通过consolelog传递给你的函数的一切,直到找到你的bug。 Ember有时不会告诉你究竟是什么错误,因为不知道究竟是从哪里来的。

...电脑很烦人,但我们爱他们......

以下是Mozilla developerGoogle中有关如何调试JavaScript的文章。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我的数据库中有一个NULL值,我在我的应用中没有考虑到这一点。在我的情况下,它首先不应该是NULL,所以在我的数据库中给记录一个值之后,问题就消失了。

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