Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 角度-*ngIf未评估_Angular - Fatal编程技术网

Angular 角度-*ngIf未评估

Angular 角度-*ngIf未评估,angular,Angular,我正在尝试对一个问题进行故障排除,并编写了以下代码以了解发生了什么,但现在我更加困惑了。理想情况下,如果entry.customer具有值,则应打印该值,然后还应显示Hello,否则应显示NOPE和bye,但实际结果是仅显示entry.customer的值 {{entry.customer} 你好 不 再见 {{entry.customer} 你好 不 再见 当我开始跟踪这个问题时,我认为可能是由于来自BehaviorSubject的条目值导致了更改检测问题,所以我尝试在区域中获取值,但这并没

我正在尝试对一个问题进行故障排除,并编写了以下代码以了解发生了什么,但现在我更加困惑了。理想情况下,如果
entry.customer
具有值,则应打印该值,然后还应显示
Hello
,否则应显示
NOPE
bye
,但实际结果是仅显示
entry.customer
的值

{{entry.customer}
你好
不
再见
{{entry.customer}
你好
不
再见
当我开始跟踪这个问题时,我认为可能是由于来自BehaviorSubject的条目值导致了更改检测问题,所以我尝试在区域中获取值,但这并没有改变结果


ngOnInit():void{
此.ngZone.run(()=>{
调试器;
此.\u entryService.entry.subscribe(entry=>{
调试器;
this.entry=entry;
});
})
}

有谁能解释一下*ngIf不起作用的可能原因,但使用大括号确实显示了该值?如果有任何帮助,我正在使用的组件将从获取条目值的基本组件扩展而来,因为此应用程序中有许多相同类型的组件。

您可能使用了变更检测:变更检测策略。在这种情况下,请尝试手动触发变更检测


这就是语法的问题。中间缺少分号。你应该写

<span *ngIf="entry.customer; else no">
  <h1>Hello</h1>
</span>

你好
您也可以使用“then”或“then else”


你好

问题是我已经将组件添加到模块中,但没有将模块添加到app.module中。感谢@raj m的回答,让我找到了解决方案


你好
不

);您在

中的代码中缺少[分号],可能您有控制台错误,否则您希望它显示两次,就像模板中的字符串插值(大括号值)显示两次一样?这可能是因为未定义值“entry”时,您的ngIf将尝试访问其“customer”属性,在这种情况下,只需将其更改为entry?.customer(可选的链接运算符),以便在未定义项时,您的ngIf返回false。控制台中没有任何内容。还有,有一次我只是在检查条目是否存在,它的行为是否相同,即使当时字符串插值也在工作。虽然这是首选语法,但它可以使用分号,也可以不使用分号。我会记住这一点。我希望现在我在我的模块中发现了这个问题,我可以删除ngZone的内容,默认的更改检测将起作用。
<span *ngIf="entry.customer; else no">
  <h1>Hello</h1>
</span>
<span *ngIf="entry.customer; then content">
  <h1>Hello</h1>
</span>

<span *ngIf="entry.customer; else no">
  <h1>Hello</h1>
</span>
<ng-template #no>
  <h1> NOPE</h1>
</ng-template>