Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 角度为2+的值的三元运算符;模板_Html_Angular_Typescript - Fatal编程技术网

Html 角度为2+的值的三元运算符;模板

Html 角度为2+的值的三元运算符;模板,html,angular,typescript,Html,Angular,Typescript,我的模板中有如下内容: 步骤 公里 我发现这个拼写很难看,有两行是这样写的。。。无聊的。所以我试着寻找替代方案 NgIfElse 步骤 公里 我发现这个更好,但是在像*ngIf=“A&&B”这样的多种情况下使用它可能会很困难。我们在模板中还有两行代码 获取函数 {{getUnit(selectedSport.key)} getUnit(运动键:字符串):字符串{ return sportKey===‘步行’?‘台阶’:‘公里’; } 这是非常好的,因为模板变得更可读。但是,我不想在我的组

我的模板中有如下内容:

步骤
公里
我发现这个拼写很难看,有两行是这样写的。。。无聊的。所以我试着寻找替代方案

NgIfElse

步骤
公里
我发现这个更好,但是在像
*ngIf=“A&&B”
这样的多种情况下使用它可能会很困难。我们在模板中还有两行代码

获取函数

{{getUnit(selectedSport.key)}
getUnit(运动键:字符串):字符串{
return sportKey===‘步行’?‘台阶’:‘公里’;
}
这是非常好的,因为模板变得更可读。但是,我不想在我的组件中为此添加函数

您知道Angular 2+模板是否支持三元运算符,如
getUnit
函数中的那样
您有更好的想法吗?

您可以在模板内部使用,如下面的示例所示

{{selectedSport.key=='walking'?'steps':'km'}
  • 似乎您正试图显示所选运动的单位。
  • 最好将逻辑保留在控制器中,并将其填充到模型中 对象和视图仅显示模型
  • 淡化逻辑 视图层可能不是一个更好的设计,并且违反了单一视图的法则 责任

您是否尝试过
{{selectedSport.key=='walking'?'steps':'km')}
?谢谢,@narendra jadhav改进了我的答案。为了扩展关于可观察值的内容,您必须将可观察和异步管道用括号括起来,如{(someObs$| async)=='someValue'?'output if true':'output if false'}正是我要找的!谢谢