我开发了一个Angular应用程序。 我想在我的应用未投入生产时显示一些文本,否则什么也没有。 我有以下代码,其中环境是可观察的:
<span *ngIf="(environment | async) !== 'production'">bla bla text...
问题在于只要可观察的问题未解决,它就会显示内容。
我认为这可以解决:
undefined !== 'somestring'
,因此条件得到验证并显示了文本。这不是我想要的,我不想显示,在可观察到的分辨率之前不对表达式进行求值。
我应该使用什么语法来防止出现不需要的内容?
感谢您的帮助
答案 0 :(得分:3)
一劳永逸地订阅您的组件,并在模板中测试实际的发射值:
<span *ngIf="env && env !== 'production'">
或在模板中订阅一次,然后将结果存储在变量中:
<ng-container *ngIf="environment | async as env">
<span *ngIf="env !== 'production'">
答案 1 :(得分:2)
您可以使用undefined
测试null
,'production'
和Array.indexOf
:
<span *ngIf="[undefined, null, 'production'].indexOf(environment | async) < 0">