2016-02-26 48 views
1

所以我發現了以下錯誤代碼:調試灰燼JS - 識別線會導致一個錯誤

未捕獲的錯誤:斷言失敗:提供給拿到鑰匙必須是字符串,傳遞的不確定

應該很容易解決,如果有任何指示我的代碼中的行導致該錯誤。

使用chrome控制檯,我點擊錯誤旁邊的ember.debug.js:6254,它只是顯示引發錯誤的ember代碼。我可以擴展這個錯誤,但是我得到了一些無法點擊的函數,並且沒有指出它們來自哪裏。

有人可以請幫我弄清楚如何識別我的Ember代碼中導致錯誤的行。

+0

你有沒有試過打開「暫停捕捉異常」,試圖在flagrante delicto中捕捉它? – 2016-02-26 17:34:14

+0

檢查異常的調用堆棧。某處是你的功能 – Lux

+0

感謝您的迴應。暫停捕捉異常仍然只顯示了一堆Ember代碼。 callstack只顯示一堆ember.debug.js函數。 – TheCompiler

回答

0

這應該是一個評論,但我不能,所以在這裏: Iam新的Ember和花費了相當長的時間調試。請記住,Chrome控制檯顯示的一大堆函數調用。 查找以外的任何其他ember.debug.js ......尤其是那些標記(匿名函數)和文件名vendor.js或APP name.js

+0

謝謝。不是我希望的答案,但它似乎是這個問題中最準確和最有幫助的答案。 – TheCompiler

0

通常在軟件開發調試你最好的朋友時,都將是console.log()alert()(在JavaScript的情況下)。通常你必須弄清楚你是否通過consolelog傳遞給你的函數,直到找到你的bug。 Ember有時不會告訴你究竟是什麼錯誤,因爲不知道究竟是從哪裏來的。

...電腦是小麻煩,但我們愛他們....

,這裏是來自Mozilla developerGoogle如何調試JavaScript的一些文章。

+0

謝謝,這就是我試圖用來追蹤錯誤。這只是一個耗時的工作,因爲我有很多嵌套的路線,並且想知道是否有更簡單的方法來確定它究竟在哪裏破裂。 – TheCompiler

+0

找到了你。好吧,我希望你找到更容易的事情,但你學到更多的方式...... –

0

我以前得到過這個錯誤。當您撥打get()的任何形式(Ember.get()this.get()get(this))而沒有字符串作爲要檢索的屬性的名稱時,就會發生這種情況。

無論您撥打get()並確保將屬性名稱作爲字符串傳遞,您應該能夠通過審覈您的應用程序來找到錯誤的來源。例如,Ember.get('model.someProp')this.get('someProp')get(this, 'someProp')

+0

謝謝。我知道如何解決這個錯誤。我只是希望有一個更簡單的方法來確定有問題的線路,然後通過所有的應用獲取。 – TheCompiler

+0

啊。不,我不知道。 –

0

我在我的數據庫,我沒」一個NULL值在我的應用程序中考慮。就我而言,首先它不應該是NULL,所以在給我的數據庫記錄一個值之後,問題就消失了。

我同意錯誤信息不是很有幫助。