Angular * ngSwitchCase未执行
问题描述:
我是Angular的新手。我在我的程序中使用了ngSwitch
,但每次运行程序*ngSwitchDefault
时都会执行而不是*ngSwitchCase
。下面是代码:Angular * ngSwitchCase未执行
答
包裹*ngSwitchCase
表达式为''
,使他们strings
。该比较将与===
一起使用,因此它将比较string
与string
。在你的情况下,它将找到名称为radio
或text
的成员,并获取它们的值,这些值是未定义的。
<span [ngSwitch]="selectedControl">
<span *ngSwitchCase="'text'">
<!-- ^----^ -->
<p>text is selected</p>
</span>
<span *ngSwitchCase="'radio'">
<!-- ^-----^ -->
<p>radio is selected</p>
</span>
<span *ngSwitchDefault>
<p>Default value</p>
</span>
</span>
+0
它的工作原理,谢谢 –
答
根据https://angular.io/api/common/NgSwitchCasengSwitchCase
期待expression
不string
。 如果你想使用硬编码的字符串替换*ngSwitchCase="text"
与*ngSwitchCase="'text'"
你需要使它成为一个字符串'“'真'''' –