无法将动态 *ngSwitchCase 值与 [class.active] 绑定

如何解决无法将动态 *ngSwitchCase 值与 [class.active] 绑定

我需要动态呈现垂直选项卡及其相关值(在右侧 div 中)

我正在尝试将动态创建的 [class.active] 字段与动态创建的 *ngSwitchCase 绑定,但没有成功。 不知道我错过了什么。

这是我的代码

<!--Below is the vertical list that gets populated,THIS WORKS,factor list gets populated-->
<ul>
     <li [class.active]="subSectionName == 'proposals'">
     <a (click)="subSectionName = 'proposals'">Proposal Summary</a></li>
                        
     <li *ngFor="let val of factor; let i=index"
     [class.active]="factorName == 'factor'+i">
     <a (click)="factorName == 'factor'+i">{{val.factorTitle}}</a></li>
</ul>

<!--Below is the code for the right section divs data that renders 
on clicking the related tab from the vertical tabs -->

 <div [ngSwitch]="subSectionName">
   <div *ngSwitchCase="'proposals'">
      <div><h2>Proposal Summary</h2></div>  <!--THIS WORKS-->
   </div>
 </div>     

 <!--BELOW DOES NOT RENDER-->
<div *ngFor="let val of factor; let i=index" [ngSwitch]="factorName">
  <div *ngSwitchCase="'factor'+i"> <div>Factor {{val.factorTitle}} </div>
</div>                    
 

我尝试仅使用索引值,也尝试使用 val.id,但它不起作用。 我还尝试在 subSectionName switchcase 中循环 ngSwitchcase for factor 。 我不确定 *ngSwitchCase 名称是否与选项卡名称不匹配,或者是否没有正确绑定。

请帮忙。

解决方法

我不能说这是这里唯一的问题,但是你不能在 Angular 中向同一个元素添加两个结构指令。看起来您的开始 div 标签比结束 div 标签多一个,这也可能导致此问题。最后,因为您不能在同一个元素上使用 ngForngSwitchCase 指令,所以您必须在新 div 中将 ngSwitchCase 下一级,如果没有t 满足条件,则 ngFor 将创建一个不添加任何值的空 div。

相反,尝试将未渲染的位更改为:

<ng-container *ngFor="let val of factor; let i=index">
   <div *ngIf="factorName === 'factor'+i">{{val.factorTitle}}</div>
</ng-container>

如果这不起作用,请尝试在 stackblitz 中重新创建您的问题,以便我们可以查看您的确切用例并提供进一步帮助。

,

它可能对某人有所帮助,因此发布了我的代码。 进行了以下更改,现在可以使用了,

<div>
 <ul>
  <li [class.active]="subSectionName == 'proposals'">
    <a (click)="subSectionName = 'proposals'">Proposal Summary</a>
  </li>
                        
  <li *ngFor="let val of factor; let i=index"
  [class.active]="subSectionName == 'factor'+i">
    <a (click)="subSectionName = 'factor'+i">{{val.factorTitle}}</a>
  </li>
 </ul>
</div>

<div [ngSwitch]="subSectionName">
  <div *ngSwitchCase="'proposals'">
     <div><h2>Proposal Summary</h2>
   </div>                    
                    
   <div *ngFor="let val of factor; let i=index" >
      <div *ngSwitchCase="'factor'+i"> 
          <div>Factor {{val.factorTitle}} </div>
       </div>
   </div>
</div>

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?