2017-01-31 16 views
3

Просто интересно, что означает знак вопроса в следующем выражении в угловом 2 приложении.Что представляет собой знак вопроса в следующем выражении в угловом приложении 2

<h1> 
 
Time Remaining: {{ currentExercise.duration? - exerciseRunningDuration }} 
 
</h1>

+0

Это должно быть '? .' Интересно, только его единственная'? '. Не могли бы вы подтвердить это? – micronyks

+1

https://angular.io/docs/ts/latest/guide/template-syntax.html#!#safe-navigation-operator – silentsod

+0

@micronyks В этом примере книги есть только вопросительный знак –

ответ

2

Это явно опечатка ошибка/печати. Если у вас нет (.) после отметки ?, то угловой шаблон компилятор будет рассматривать его как тройной оператор.

1

Просто дополняя комментарий @silentsod, поскольку URL-адрес документации изменился.

Это опечатка для safe navigation operator (?.)

<h1> 
 
Time Remaining: {{ currentExercise?.duration - exerciseRunningDuration }} 
 
</h1>

1

Как предыдущие ответы заявили, что это опечатка, и как Harshl сказали, если (.) Было после? mark, Angular рассматривает его как тройной оператор. но если заявление было как:

<h1> 
Time Remaining: {{ currentExercise?.duration - exerciseRunningDuration }} 
</h1>enter code here 

знак вопроса действует как безопасной навигации оператора. «Он обеспечивает способ защиты от нулевых и неопределенных значений в пути к свойствам. Выражение берется, когда оно достигает первого нулевого значения. Дисплей будет пустым, но приложение будет поддерживать без кавычек». (Angular Documentation)

Кроме того, если код был следующим:

<h1> 
Time Remaining: {{ currentExercise.duration - exerciseRunningDuration }} 
</h1>enter code here 

Если свойство «длительность» от «currentExercise» было нулевым, Угловой бы кинуть ссылку на нулевую ошибку, и весь вид исчезнет. Вот почему важно использовать безопасный навигационный оператор .