【问题标题】:Angular 2 call a function based on class applied on a divAngular 2 调用基于应用在 div 上的类的函数
【发布时间】:2018-02-08 18:19:21
【问题描述】:

我有一个带有 *ngFor 的 div 来循环遍历一组消息。

<div *ngFor="let message of messages;  let i=index" 
 [focused]="i === activeIndex;" [ngClass]="{'message-list-active': activeIndex === i  }" 
(click)="onAddtoMessage(message.id); activeIndex = i"></div>

我正在将class "message-list-active" 应用于焦点项目,此消息将颜色变为蓝色。

单击时我有一个单击事件,我可以传递消息 ID。

问题是我如何通过不点击来传递 id,但传递应用了“message-list-active”的消息的 id。将来可以默认选择随机消息,我需要它们的 id。

【问题讨论】:

    标签: javascript css angular ng-class


    【解决方案1】:

    使用[ngClass]中的函数

    <div *ngFor="let message of messages;  let i=index" 
     [focused]="i === activeIndex;" [ngClass]="{
            'message-list-active': activeClass(i, message)
     }" 
    (click)="onAddtoMessage(message.id); activeIndex = i"></div>
    
    
    activeClass(index, message){
       if(index === this.activeIndex){console.log(message.id)}
       return index === this.activeIndex;
    }
    

    【讨论】:

    • 我正在记录 id,它只打印每条消息的 id,但我只需要那些应用了“message-list-active”类的 id
    • 不能在函数中过滤掉吗,只设置条件
    • 伙计,我不知道你的messges数组有什么,你没有在这里添加,你想要的是在这种情况下index === this.activeIndex你想添加类,你想看看该对象的 id,所以你得到它,现在检查你的消息数组,你可能在那里有问题,你可能所有的 id 都为 1 或其他,stackoverflow 给出的想法不是确切的解决方案
    • 感谢您的回答,对我有很大帮助,找到后会发布我遇到的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    • 1970-01-01
    相关资源
    最近更新 更多