2013-07-17 52 views
0

如果您引用一個不存在的屬性,有沒有辦法讓Ember記錄警告或錯誤?目前,如果拼寫錯誤的句柄模板中綁定的屬性的名稱沒有警告,它只是不顯示任何內容,並且可能很難找到哪個屬性不正確。EmberJS - 一種記錄未定義綁定的方法

我有LOG_BINDINGS啓用,這有所幫助,但有很多不相關的東西排序。

回答

0

一半的解決方案可能是在使用之前使用handlebars幫助器記錄屬性,不幸的是,不存在的屬性導致模板根本不顯示。這是車把不顯示錯誤的常見問題。

{{log myProperty}} 
+0

聲音對於調試很有用..但它並不完全解決基本問題。我覺得我花了一半的時間在Ember /把手中尋找錯別字和類似的東西(如果把手沒有那個功能太糟糕了。 – user1785797

1

我沒有發現任何一般的內置調試,但有一種機制可以添加你自己的。

任何時候'get'調用返回undefined時,Ember.Object都會調用方法'unknownProperty'。您可以添加一個console.warn來記錄該屬性。該文檔將其描述爲一種制定自定義抽象方法類型處理的方法。

http://emberjs.com/api/classes/Ember.Observable.html#method_get

Ember.Object.reopen(
    unknownProperty: (property) -> 
    unless property is 'App' or property is 'Ember' 
     console.warn "Unknown property #{property} in #{@toString()}" 
) 

公告全局命名空間「應用」的過濾和「灰燼」 - 全球性的所有呼叫還是去通過這個接口,但是對於我們關心他們是紅鯡魚。

不幸的是,如果你試圖通過重新打開Ember.Object本身來做到這一點,你會得到一堆你不關心的垃圾,因爲顯然這一直髮生,特別是在EventManager類中。我已經通過將它應用於Ember.ArrayController,Ember.ObjectController和一個Model類(我的所有模型都從中繼承)來解決此問題。

我現在明白了控制檯,而不是每次我不小心輸入「HIGHT」到車把,而不是「高度」

在生產解決方案的時間在空白頁上整齊的警告消息,一會想這個鏈接到一些我假設在構建中有一種「調試」選項。

相關問題