AngularX ngSwitch 始终使用 ngSwitchDefault

标签 angular

出于某种原因,无论我使用什么格式来构建 ngSwitch,唯一有效的指令是 *ngSwitchDefault。

这是我的代码:

<div class="icon-group" [ngSwitch]="published?.availableOn">
                <mat-icon *ngSwitchCase="Android" fontSet="fontawesome" fontIcon="fa-android" class="green-icon"></mat-icon>
                <mat-icon *ngSwitchCase="Windows" fontSet="fontawesome" fontIcon="fa-windows" class="blue-icon"></mat-icon>
                <mat-icon *ngSwitchCase="iOS" fontSet="fontawesome" fontIcon="fa-apple"></mat-icon>
                <mat-icon *ngSwitchCase="Web" fontSet="fontawesome" fontIcon="fa-internet-explorer"></mat-icon>
                <ng-container *ngSwitchCase="AndroidiOS">
                        <mat-icon fontSet="fontawesome" fontIcon="fa-android" class="green-icon"></mat-icon>
                        <mat-icon fontSet="fontawesome" fontIcon="fa-apple"></mat-icon>
                </ng-container>
                <mat-icon *ngSwitchDefault  fontSet="fontawesome" fontIcon="fa-internet-explorer"></mat-icon>  >

</div>

最佳答案

问题是,在评估字符串时,您必须将它们放在单引号中,因此修复非常简单:

<div class="icon-group" [ngSwitch]="published?.availableOn">
                <mat-icon *ngSwitchCase=" 'Android' " fontSet="fontawesome" fontIcon="fa-android" class="green-icon"></mat-icon>
                <mat-icon *ngSwitchCase=" 'Windows' " fontSet="fontawesome" fontIcon="fa-windows" class="blue-icon"></mat-icon>
                <mat-icon *ngSwitchCase=" 'iOS' " fontSet="fontawesome" fontIcon="fa-apple"></mat-icon>
                <mat-icon *ngSwitchCase=" 'Web' " fontSet="fontawesome" fontIcon="fa-internet-explorer"></mat-icon>
                <ng-container *ngSwitchCase=" 'AndroidiOS' ">
                        <mat-icon fontSet="fontawesome" fontIcon="fa-android" class="green-icon"></mat-icon>
                        <mat-icon fontSet="fontawesome" fontIcon="fa-apple"></mat-icon>
                </ng-container>
                <mat-icon *ngSwitchDefault  fontSet="fontawesome" fontIcon="fa-internet-explorer"></mat-icon>  

</div>

关于AngularX ngSwitch 始终使用 ngSwitchDefault,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51560421/

相关文章:

javascript - 获取 Angular 5/TypeScript 中的类(接口(interface))属性而不分配默认值

javascript - 与 Angular 2 中的多个组件共享 websocket 数据

typescript - 在悬停时有条件地添加 html 类属性

angular - 在 Angular 7 中更改 url 而不重定向

css - <div (click) ="handler()"> 在 edge 中不起作用,但在 IE11 和其他浏览器中起作用

javascript - 无法使用 Angular 6 在按钮单击时加载动态图像

使用 Material Design 和 ReactiveForms 的 Angular2 级联下拉菜单

同时运行 ng build --watch 和 ngserve 时,Angular 7 库 html 模板更改不会影响应用程序

html - 垫树水平滚动。如何添加?

javascript - Angular Reactive Forms动态嵌套数组检测失去焦点时的变化