所以我有一个来自服务器的复杂日期模型来提供我的 Angular2 组件。下面显示了该组件模板的一小部分:
<div>
<span>{{Person.Address.City}}</span>
<input type="text" [(ngModel)]="Person.Address.City" />
</div>
Address
可能是null
或undefined
取决于从服务器返回的数据。我知道 elvis 操作员会让我免于一个错误:
<span>{{Person?.Address?.City}}</span>
但不幸的是,它不会拯救我,[(ngModel)]="Person.Address.City"
因为没有为此定义猫王。如果你做类似的事情,你会得到一个解析器错误,如果你不这样[(ngModel)]="Person?.Address?.City"
做,你就会得到null
异常。
这里有两个最简单的数据变体,但可能还有更多:
{
Name:'sam',
LastName: 'jones',
Address: {
Street: '123 somewhere',
City: 'some land'
State: 'SL'
}
}
或者...
{
Name:'sam',
LastName: 'jones'
}
由于处理这些场景的责任应该在 Angular2 而不是提供数据的服务器上,由于表示和业务逻辑的分离,我将如何处理这些场景?