【发布时间】:2020-11-18 07:17:22
【问题描述】:
使用*ngIf 时,您可以执行*ngIf = (value$ | async).property as prop 之类的操作,然后在整个代码中使用prop,而无需每次都重复很长的(value$ | async).property 。但是,这仅在 (value$ | async).property 是一个真实值时才有效 - 例如,如果它为零。
我的问题是 - 我怎样才能仍然获得 as 的好处,但如果值是假的,仍然有元素显示?或者更好的是,有没有办法在*ngIf 之外使用as 等?
【问题讨论】:
-
您可以在
component.ts中定义一个可以在代码中使用的属性。在我看来,这似乎是最好的方法。在*ngIf范围之外定义 prop 并不是真的打算(我认为不可能)。但是,如果您知道在*ngIf范围之外使用prop没有任何价值,那又有什么意义呢?您始终可以定义*ngIf="(value | async) as prop; else noProp"并将#noProp分配给组件模板中某处的ng-template元素。 -
谢谢,但是如果我在我的组件中定义它,那么我需要订阅 observable,而不是利用异步管道。我想显示虚假值,因为在这种情况下它是一个枚举。我仍然想显示第一个值,我只是想要一种快捷方式访问属性的方法。如果没有解决方案,我将在元素内所有我需要的地方重复 (value$ | async).property
标签: angular angular-ng-if