2016-09-29 95 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是构建浏览器应用程序(以及服务器和移动应用程序)的不错语言。绝对值得仔细看看;-) –