您好我正在查看以下Angular代码,如果用户未在“名称”字段中输入其名称,则为错误消息div。
<div *ngIf ="userName.errors?.required && username.touched" class="alert alert-danger"> Name is required</div>
据我所知,如果触摸名称字段并且未在名称字段中输入用户名,则此div将显示
但我不确定我是否遵循?.
语法。我该怎么读呢。
由于
答案 0 :(得分:3)
它被称为Safe Navigation Operator。如果您希望对象可能是null
并且您需要访问其属性,则使用它。这是为了防止因访问空值属性而导致的错误。
答案 1 :(得分:1)
此?.
表示只检查此属性是否有值,换句话说,如果userName.errors
由于任何原因未定义,则会忽略该属性。
答案 2 :(得分:0)
在C#
中,它被称为Null Propagation
。见下面的代码,它们表达了相同的含义。
var name = _currentTpl != null ? _currentTpl.TplName : null;
var name = _currentTpl?.TplName;
在Angular中,它被称为safe navigation operator
。实际上,没有区别。