【问题标题】:Why is the *ngIf statement not working in Angular 13?为什么 *ngIf 语句在 Angular 13 中不起作用?
【发布时间】:2021-11-18 09:42:15
【问题描述】:

我刚刚创建了一个新的 Angular 13 项目并遇到了问题,任何 *ngIf 语句不仅被忽略,而且整个 div 根本没有显示。 我测试的 html 文件如下所示:

<div *ngIf="true">This is text a</div>
<div>This is text b</div>

这是结果(控制台也是空的):website screenshot

我不知道这是否是 Angular 13 或其他问题的问题,但我欢迎任何提示或想法。

【问题讨论】:

  • 此代码应按预期工作。您的编译是否是最新的,您的网站是否已刷新?
  • 是的,应该是。正如我所说,我只是创建了一个全新的 Angular 13 项目(我仔细检查了版本),是的,我确实刷新了页面(即使 JIT 编译器正在运行)

标签: angular angular-ng-if


【解决方案1】:

不看代码就很难理解问题。 你有一些控制台错误吗?

一个原因可能是您没有在 yourName.module.ts 文件中导入 CommonModule。在这种情况下,您将看到类似“无法绑定到 ngIf,因为它不是 'div' 的已知属性”这样的错误

【讨论】:

  • 它是一个新的 Angular 项目,添加了已发布的 html 代码,这就是我没有发布更多代码的原因(如果需要,我可以这样做)。没有编译错误,浏览器控制台也是空的。这就是让我感到困惑的事情,看起来一切都很好,但是它忽略了 ngIf divs ...
  • 正如我在评论中告诉你的,检查模块是否包含 CommonModule。如果没有,请将其添加到导入部分。
  • CommonModule 已包含在导入中
  • 如果没有错误并且您导入了正确的模块,那么这应该可以工作。在最新的 Angular 版本中,该指令没有变化。您可以尝试在 Stackblitz 或 CodeSandbox 等可共享的游乐场中重现代码和错误
【解决方案2】:

我忘记将子模块(包含使用的组件)导入到 app.module.ts 文件中。添加导入后,一切都按预期工作。

我只是好奇为什么编译器没有抛出某种错误消息...

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 2022-01-18
  • 1970-01-01
  • 2014-01-17
  • 1970-01-01
  • 2021-01-28
  • 2021-07-13
  • 2021-11-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多