模板在创建模型之前尝试引用模型

时间:2016-03-09 16:54:52

标签: angular angular2-template

我的模板试图引用模型的属性,如:{{someModel.propertyName}}。模型的值由外部组件传递,因此它的定义如下:@Input() someModel: someModelInterface = new SomeModel();。外部组件使用Observable获取此模型异步。 我收到错误,该模板无法显示propertyName的属性undefined。 即使我在构造函数中创建了一个空模型实例,我也会收到此错误。 我理解为什么会发生这种情况:在模板尝试呈现模型的属性时,模型不会被传递。我能够通过在面板?中添加{{someModel?.propertyName}}来解决这个问题,但这看起来不像是一个干净的解决方案,更像是一种解决方法。有没有更好的办法? 另外,为什么模板将其视为未定义,即使我在构造函数中创建它?

1 个答案:

答案 0 :(得分:0)

使用

{{someModel?.propertyName}}

这样,如果someModel在尝试绑定propertyName时仍然为空,则Angular不会抛出。

?.是安全导航操作符(Elvis运算符),如果null之前的部分为?.并且甚至不尝试访问{{}},则返回null {1}}只要propertyNamesomeModel