为angular 2指定活动类onclick in

为angular 2指定活动类onclick in,angular,ng-class,ngfor,Angular,Ng Class,Ngfor,嗨,我有一个无序的列表,他们都有活动类。我想在单击任何列表项时切换活动类。我的代码是这样的 <ul class="sub_modules"> <li *ngFor="let subModule of subModules" class="active"> <a>{{ subModule.name }}</a> </li> </ul> {{subModule.name} 有人能帮我吗?我相信你可以在

嗨,我有一个无序的列表,他们都有活动类。我想在单击任何列表项时切换活动类。我的代码是这样的

<ul class="sub_modules">
  <li *ngFor="let subModule of subModules" class="active">
    <a>{{ subModule.name }}</a>
  </li>
</ul>
    {{subModule.name}

有人能帮我吗?

我相信你可以在这里找到答案:


您可以通过Angular的
$index
将CSS定位并应用于项目/对象。这篇文章比我能更好地解释和演示逻辑。

你可以做如下事情:

    {{subModule.name}
关于组件

activateClass(子模块){
subModule.active=!subModule.active;
}

在Ng类上,第一个属性是要添加的类,第二个是条件

只需创建一个索引属性。使用
let i=index
使用(单击)事件设置索引。然后检查是否选择了索引===i如果选择了,则将类“active”设置为true

    {{subModule.name}
然后在typescript文件上:只需设置selectedIndex

export class ClassName {
   selectedIndex: number = null;

   setIndex(index: number) {
      selectedIndex = index;
   }
}

对不起,你的回答不是我想要的。谢谢你@Eduardo。。这是我想要的,但所有列表项都应该已经有活动类。。那我怎么做呢?你可以做一个数组的映射。map(obj=>{obj.active=false;return obj;})非常感谢您。我用obj做的。active=true。。。这就是我想要的)它工作完美)你的HTML块中有一个错误<代码>[class.active]='sIndex===i而不是
[class.active]='selectedIndex===i
。否则,很好的答案:-)这不是Toggling在寻找一个简单的解决方案,并发现了这个。。。谢谢在恢复到组件逻辑之前,我总是喜欢使用Angular的速记模板方法。