所以我收到以下错误:
未捕获错误:断言失败:提供的密钥必须是字符串,您传递未定义
如果我的代码中有任何行显示导致该错误,那么应该很容易修复。
使用chrome控制台,我点击错误旁边的ember.debug.js:6254,它只显示抛出错误的余烬代码。我可以扩展错误,但我只是获得了一堆无法点击的功能,并且没有任何指示它们来自哪里。
有人可以帮我弄清楚如何识别导致错误的Ember代码中的行。
答案 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 developer和Google中有关如何调试JavaScript的文章。
答案 2 :(得分:0)
这应该是评论,但我不能,所以这里是: 我刚接触到Ember并且花了很长时间进行调试。请记住chrome控制台显示的长堆函数调用。 查找除ember.debug.js以外的任何内容...尤其是标记为(匿名函数)的文件以及名称为vendor.js或app-name.js的文件
答案 3 :(得分:0)
我的数据库中有一个NULL
值,我在我的应用中没有考虑到这一点。在我的情况下,它首先不应该是NULL
,所以在我的数据库中给记录一个值之后,问题就消失了。
我同意错误消息不是很有帮助。