2013-09-10 61 views
0

剛開始使用angular.js並實現了一個指令,該指令從僅在單擊按鈕時定義的範圍中的屬性讀取。用戶界面看起來也很好,因爲指令部分僅在點擊按鈕時顯示。但是在控制檯中,當第一次加載頁面時,會出現一條錯誤消息,提示「無法讀取未定義屬性someProperty」。如何避免angular.js搶先獲取數據,直到某些動作

我必須違反一些角度原則,但我不知道如何解決它。謝謝您的幫助!

注:沒有做小提琴,因爲這是一個普遍的問題。

+0

不,這可能是一個常見問題,但答案總是與您編寫的代碼有關,因此您需要在某處提供該代碼。 – iConnor

回答

0

一般來說,如果你有代碼彭定康像

$scope.myObject.property 

,那麼你可以看到錯誤時myObjectundefined

一個可以消除錯誤方式的代碼工作是確保對象是總是當任何財產的目的是被稱爲初始化。

您可以在該屬性被引用之前放置此行。

$scope.myObject = {}; 

或做

if($scope.myObject !== undefined){ 
    ... 
} 

這裏沒有火箭科學。

+0

謝謝你的提示---我實際上是這麼做的,因爲皮諾喬已經指出我並不認爲最初的問題完全是一個聲明問題,因爲對象的部分顯示和部分沒有。錯誤消息來自我的一個控制檯日誌,而不是來自指令。然而,我很難將它放在jsfiddle上,因爲它的一部分通過回調與後端$資源進行通信。有關如何更好地呈現代碼的想法?謝謝! – yifanwu