当前位置: 首页 > 知识库问答 >
问题:

Angular 4中还有别的吗

狄富
2023-03-14
<ng-template [ngIf]="xyz== 1">First</ng-template>
<ng-template [ngIf]="pqr == 2">Second</ng-template>
<ng-template [ngIf]="abc == 3">Third</ng-template>

如果为false,则检查第二次,依此类推

如何做到这一点?

共有1个答案

窦哲彦
2023-03-14

您可以尝试使用ngif指令,如下所示:

<ng-template [ngIf]="xyz == 1" [ngIfElse]="second">First</ng-template>
<ng-template #second>
  <ng-template [ngIf]="pqr == 2" [ngIfElse]="third">Second</ng-template>
</ng-template>
<ng-template #third>
  <ng-template [ngIf]="abc == 3">Third</ng-template>
</ng-template>

对于ng-container,它将如下所示:

<ng-container *ngIf="xyz == 1; else second">First</ng-container>
<ng-template #second>
    <ng-container *ngIf="pqr == 2; else third">Second</ng-container>
</ng-template>
<ng-template #third>
    <ng-container *ngIf="abc == 3">Third</ng-container>
</ng-template>

但是如果您想使用for loop语句,我可以提供以下解决方案

<ng-container *ngTemplateOutlet="next; context: { $implicit: 0 }"></ng-container>

<ng-template #next let-i>
  <ng-container *ngIf="conditions[i]">
    <ng-container *ngIf="conditions[i] && conditions[i].condition(); else shift">{{ conditions[i].result }}</ng-container>
      <ng-template #shift >
        <ng-container *ngTemplateOutlet="next; context: { $implicit: i + 1 }"></ng-container>
      </ng-template>
  </ng-container>
</ng-template>
conditions = [
  {
    condition: () => this.xyz === 1,
    result: 'First'
  },
  {
    condition: () => this.pqr === 2,
    result: 'Second'
  },
  {
    condition: () => this.abc === 3,
    result: 'Third'
  }
];
 类似资料:
  • 我们上一章介绍了()与{}的不同, 这次让我们扩展一下,看看更多的变化: $()与${}又是啥玩意儿呢? 在bash shell中, $()与``(反引号)都是用来做 命令替换(command substitution)的。 所谓的命令替换与我们第五章学过的变量替换差不多, 都是用来重组命令行: 完成 `` 或者$()里面的 命令,将其结果替换出来, 再重组命令行。 例如: $ echo the

  • 本文向大家介绍Angular4 ElementRef的应用,包括了Angular4 ElementRef的应用的使用技巧和注意事项,需要的朋友参考一下 Angular 的口号是 - "一套框架,多种平台。同时适用手机与桌面 (One framework.Mobile & desktop.)",即 Angular 是支持开发跨平台的应用,比如:Web 应用、移动 Web 应用、原生移动应用和原生桌面

  • Dockerized Angular 4 App (with Angular CLI) Build docker image $ docker build -t myapp . Run the container $ docker run -d -p 8080:80 myapp The app will be available at http://localhost:8080 You can e

  • 本文向大家介绍Dubbo默认使用什么注册中心,还有别的选择吗?相关面试题,主要包含被问及Dubbo默认使用什么注册中心,还有别的选择吗?时的应答技巧和注意事项,需要的朋友参考一下 推荐使用 Zookeeper 作为注册中心,还有 Redis、Multicast、Simple 注册中心,但不推荐。  

  • 我从官方网站学习Angular 4,我通过ngModel学习了双向数据绑定部分。但是,只要我将[(ngModel)]添加到组件模板中,我的应用程序就会停止工作,即使FormsModule已导入模块中。ts文件。组件未加载 我正在使用Visual Studio代码<这是我的应用程序。组成部分ts 这是一个应用程序。单元ts AppComponent没有加载,只是显示 加载。。。

  • Spring Boot + Angular 4 Boilerplate Quick start for Spring Boot + Angular 4 projects with JWT auth Includes: Front-end: angular-cli boilerplate files JWT authentication service Back-end: gradle build