我的模板试图引用模型的属性,如:{{someModel.propertyName}}
。模型的值由外部组件传递,因此它的定义如下:@Input() someModel: someModelInterface = new SomeModel();
。外部组件使用Observable获取此模型异步。
我收到错误,该模板无法显示propertyName
的属性undefined
。
即使我在构造函数中创建了一个空模型实例,我也会收到此错误。
我理解为什么会发生这种情况:在模板尝试呈现模型的属性时,模型不会被传递。我能够通过在面板?
中添加{{someModel?.propertyName}}
来解决这个问题,但这看起来不像是一个干净的解决方案,更像是一种解决方法。有没有更好的办法?
另外,为什么模板将其视为未定义,即使我在构造函数中创建它?
答案 0 :(得分:0)
使用
{{someModel?.propertyName}}
这样,如果someModel
在尝试绑定propertyName
时仍然为空,则Angular不会抛出。
?.
是安全导航操作符(Elvis运算符),如果null
之前的部分为?.
并且甚至不尝试访问{{}},则返回null
{1}}只要propertyName
为someModel
。