In most cases, you'll wrap the entire ternary expression in parentheses before passing the result to a pipe.

Example: (isLeft ? 'left' : 'right') | uppercase {{ (isLeft ? 'left' : 'right') | uppercase }}

Without parentheses, only the second value is uppercased.

Example: isGood ? 'good' : 'bad' | uppercase {{ isGood ? 'good' : 'bad' | uppercase }}

Same as: isGood ? 'good' : ('bad' | uppercase) {{ isGood ? 'good' : ('bad' | uppercase) }}

If only one of the values should be passed to a pipe, be explicit and surround that value with parentheses.

Example: isUpper ? ('upper' | uppercase) : 'lower' {{ isUpper ? ('upper' | uppercase) : 'lower' }}