Angular:如何使用逻辑 AND (&&) 引用新控制流 @if 中函数的结果

问题描述 投票:0回答:1

使用旧的控制流,我可以通过这种方式引用函数的结果。

<span *ngIf="column.getValue && column.getValue(item) as value">{{value}}</span>

但是当我使用新的控制流(@if)时,它会抛出错误

Parser Error: Unexpected token 'as'

@if (column.getValue && column.getValue(item) as value) {
<span>{{value}}</span>
}

我已经尝试过以下方法,但没有效果

@if (column.getValue && (column.getValue(item) as value))
@if (column.getValue && column.getValue(item); as value)
@if (column.getValue && (column.getValue(item); as value))

在我看来应该是可能的,但我找不到如何实现。

仅供参考:

column.getValue
是一个可选函数,这就是为什么我在执行它之前检查它是否存在。

angular control-flow
1个回答
1
投票

控制流语法还允许对条件结果进行别名,您需要使用

;
:

@if (column.getValue && column.getValue(item); as value)

您不必要地再放一个大括号。这是整个条件的别名,其工作原理如下:

  • 如果
    column.getValue
    null
    ,则返回
    false
  • 如果
    column.getValue
    不是
    null
    ,则返回
    column.getValue(item)
  • 的结果

您可以阅读更多这里

仅供参考:如果

getValue
是可选的,您可以在此处使用 可选链接

@if (column.getValue?.(item); as value)
© www.soinside.com 2019 - 2024. All rights reserved.