angular - 如何更改从列表中选择的项目的背景颜色?

标签 angular

import { Component } from '@angular/core';

export class Hero {
    name: string;
}

const HEROES: Hero[] = [
    { name: 'STWX1' },
    { name: 'STWX2' },
    { name: 'STWX3' },
    { name: 'STWX4' }
];

@Component({
    selector: 'my-app',
    template: `
        <div style="display: inline-block; width = 200px; ">
            <ul class="heroes">
                <li *ngFor="let hero of heroes" (click)="onSelect(hero)"
                    [class.selected]="hero === selectedHero">
                     <p [style.background-color]="getStyle()">{{hero.name}}</p>
                </li>
           </ul>
       </div>'
   ,
   styles: [...]
})

export class AppComponent  {
 public showStyle: boolean = false;

    name = 'Angular1';
    testRequestId = '3224';
    heroes = HEROES;
    selectedHero: Hero;

    goToDivClick() {
        return HEROES;
    }

    onSelect(hero: Hero): void {
        this.showStyle = true;
        this.selectedHero = hero;
    }

getStyle() {
        if (this.showStyle) {
            return "grey";
        } else {
            return "";
        }
    }
}

我想更改从列表中选择的项目的背景。根据我上面的代码,我有一个列表,我正在尝试调用方法 getStyle() 将所选项目的背景颜色更改为黄色。截至目前,所有列表项的颜色都在变化。在我的示例中,我不知道如何专门更改所选英雄的颜色。你能告诉我哪里出错了吗?

最佳答案

<p [style.background-color]="getStyle(hero)">

    getStyle(hero) {
        if (hero === this.selectedHero) {
            return "grey";
        } else {
            return "";
        }
    }

<p [style.background-color]="hero===selectedHero ? 'grey' : ''">

关于angular - 如何更改从列表中选择的项目的背景颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42121765/

相关文章:

angular - 更新到 Angular v6 - 找不到模块 : Error: Can't resolve 'fs'

angular - 在 Ionic 2 的子页面中隐藏选项卡

angular - 使用复选框删除多行

javascript - 如何在 Angular 5 中执行 "onload"事件?

Angular2动画旋转方向?

typescript - 类型 'IArguments' 不是数组类型

Angular Material 2 Reactive Forms -- mat-error with *ngIf 在验证 minLength、电子邮件和所需的验证工作时未显示

angular - this.form.get 不是 Angular 4 中的函数

angular - 如何使用angular 6在函数中传递动态模板引用变量

angular - 从 Material Icon Registry 加载图标时出现 "<svg> tag not found"错误