Angular 17 ngIf 仅接受布尔值?

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

我有一个正在运行的 Angular 应用程序,现在似乎出现了重大变化,并且

*ngIf
只接受布尔值,而不将假/真值转换为布尔值。

但是,我在文档中找不到任何内容,也无法在互联网搜索中找到任何内容,所以,似乎我是唯一经历过这种情况的人。但后来我不知道这是如何/为什么会发生。

<pre><code>{{ arr?.length }}</code></pre>

<pre *ngIf="arr?.length">has length (value)</pre>
<pre *ngIf="!!arr?.length">has length (bool)</pre>
<pre *ngIf="!arr?.length">has no length (bool)</pre>

rendered UI

angular angular-ng-if
1个回答
0
投票

原来它不是 Angular 本身,而是在 NgBootstrap Accordion 组件内,并且我没有用

<ng-template>
包裹我的内容在
ngbAccordionBody
中。

错误:

...
<div ngbAccordionBody>
    <pre *ngIf="arr?.length">has length (value)</pre>
</div>

正确:

...
<div ngbAccordionBody>
  <ng-template>
    <pre *ngIf="arr?.length">has length (value)</pre>
  </ng-template>
</div>

这对我来说似乎是过度设计的,但这超出了范围。终于成功了。

© www.soinside.com 2019 - 2024. All rights reserved.