2016-09-29 120 views
2

渲染對象時,空的錯誤,我想在我的模板像這樣寫:鏢angular2 - 模板

<span>{{myObject.myField}}</span> 

然而myObjectngOnInit被初始化,並且我的目標似乎仍是空當呈現頁面時,因爲我有以下錯誤

NullError: method not found: 'myField' on null 

如果我只是把我的模板

<span>{{myObject}}</span> 

我可以看到myObject的值。

有沒有辦法在OnInit之前初始化我的對象?有另一種顯示我的數據的方法嗎?

感謝您的幫助。

回答

2

您可以使用安全的導航操作

<span>{{myObject?.myField}}</span> 

以防止出現錯誤而模型尚未完全初始化

或者你可以用元素與*ngIf,以防止它們被渲染時模型尚未初始化

<span *ngIf="myObject != null">{{myObject.myField}}</span> 

這樣您可以覆蓋更大的塊或整個模板與一個單一的*ngIf而不是在任何地方添加?

+0

' {{myObject?.myField}}'完美地工作。謝謝! – matth3o

+1

在我們的項目中,在相同的情況下,我們通常添加額外的'* ngIf =「myObject == null」'作爲內容的某種旋轉器或'加載'標記,以指示組件尚未初始化。這種方法可以很容易地轉換成一些自定義防護控制。 –

+2

@StefanSvrkota當然。你能刪除你的嗎? Dart是構建瀏覽器應用程序(以及服務器和移動應用程序)的不錯語言。絕對值得仔細看看;-) –