【问题标题】:Angular2 applying dynamic css class failsAngular2应用动态css类失败
【发布时间】:2018-01-05 23:31:00
【问题描述】:

我有一个扩展面板组,我正在尝试将一个 CSS 类应用到活动面板:

<mdl-expansion-panel-group>
    <mdl-expansion-panel *ngFor="let task of tasks" [ngClass]="{'active': task.id == selectedTask}">
        <mdl-expansion-panel-header>
            <mdl-expansion-panel-header-list-content><h6>{{task.what_task}} {{task.id}}</h6></mdl-expansion-panel-header-list-content>
        </mdl-expansion-panel-header>
        <mdl-expansion-panel-content>
            <mdl-expansion-panel-body>

                <button mdl-button mdl-button-type="raised" mdl-colored (click)="selectTaskToEdit(task)">
                    Edit
                </button>

            </mdl-expansion-panel-body>
        </mdl-expansion-panel-content>
    </mdl-expansion-panel>
</mdl-expansion-panel-group>

css 类active 的背景颜色设置为黄色。在我的组件中,我打印了console.log(this.selectedTask==task.id),结果是真的,但是我的课程没有被应用。

我的组件:

  selectTaskToEdit(task){

    this.task=task;
    this.selectedTask=task.id;
    console.log(this.selectedTask==task.id)
  }

和css:

.active {
  background-color: yellow;
}

我做错了什么吗?

更新:我可以使用[style.background-color]="task.id == selectedTask ? 'yellow': null " 解决它,但是我想知道是否有正确的方法来处理 ngClass

【问题讨论】:

  • 您能告诉我们selectTaskToEdit 代码吗?你在哪里设置selectedTask
  • 你在哪里指定activecss 类?
  • background-color: yellow !important; 能否请您尝试在最后添加!important 并让我知道它是否有效。

标签: angular angular2-mdl


【解决方案1】:

[style.background-color]="task.id == selectedTask ? 'yellow': null"

[class.active]="task.id == selectedTask"

是唯一的方法,因为mdl-expansion-panel 有自己的host class expressions,它会覆盖你的[ngClass]

Here 是 plnkr 的示例。

【讨论】:

  • [class.active]="task.id == selectedTask" 没有效果:(但是第一种方法有效。我想通了,但会接受它的答案
猜你喜欢
  • 2018-01-02
  • 2017-09-19
  • 2021-04-09
  • 2016-01-24
  • 1970-01-01
  • 2017-07-21
  • 2018-02-06
  • 2017-01-24
  • 2017-05-09
相关资源
最近更新 更多