当前位置:   article > 正文

[Angular] 笔记 5:ngClass

ngclass

Angular 中的 ngClass 是什么?
chatgpt 回答:
在Angular中,ngClass 是一个内置的指令,用于动态地添加或移除 HTML 元素的 CSS 类。它允许你根据条件设置一个或多个 CSS 类,可以是对象、数组或字符串

使用方式:

  1. 字符串语法
<div [ngClass]="'class1 class2'">...</div>
  • 1

在这个例子中,class1class2 类将被添加到 div 元素中。

  1. 数组语法
<div [ngClass]="['class1', 'class2']">...</div>
  • 1

使用数组语法可以添加多个类到元素中。

  1. 对象语法
<div [ngClass]="{'class1': condition1, 'class2': condition2}">...</div>
  • 1

基于条件动态地添加或移除类。如果 condition1trueclass1 类将被添加到元素中;如果 condition2trueclass2 类将被添加到元素中。

  1. 使用方法调用
<div [ngClass]="getClassNames()">...</div>
  • 1

getClassNames() 是一个在组件中定义的方法,用于返回需要应用的类名。

ngClass 是一个非常有用的指令,能够根据组件中的变量或条件动态地管理元素的样式类,让你可以根据特定的情况或状态来改变元素的外观和行为。


Youtube tutorial:
app.component.ts:

// 类型检查
interface Pokemon {
  id: number;
  name: string;
  type: string;
  isCool: boolean;
}

@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css'],
})
export class AppComponent {
  pokemons: Pokemon[] = [
    {
      id: 1,
      name: 'pikachu',
      type: 'electric',
      isCool: false,
    },
    {
      id: 2,
      name: 'squirtle',
      type: 'water',
      isCool: true,
    },
    {
      id: 3,
      name: 'charmander',
      type: 'fire',
      isCool: true,
    },
  ];

  constructor() {}
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37

app.component.html,但是没有使用 ngClass 设置 CSS,而是使用属性绑定语法,动态添加 cool-bool CSS 类到 td 元素中。

<table>
  <thead>
    <th>Index</th>
    <th>Name</th>
    <th>Type</th>
  </thead>
  <tbody>
    <tr *ngFor="let pokemon of pokemons; let i = index">
      <td [class.cool-bool]="pokemon.isCool">{{ i }}</td>
      <td>{{ pokemon.name }}</td>
      <td>{{ pokemon.type }}</td>
    </tr>
  </tbody>
</table>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14

app.component.css

.cool-bool {
	/* 蓝色 */
    background: #0094ff;
}
  • 1
  • 2
  • 3
  • 4

可以看到如下的界面:

在这里插入图片描述
使用 ngClass 对象语法:
app.component.html:

<table>
  <thead>
    <th>Index</th>
    <th>Name</th>
    <th>Type</th>
  </thead>
  <tbody>
    <tr *ngFor="let pokemon of pokemons; let i = index">
      <td [class.cool-bool]="pokemon.isCool">{{ i }}</td>
      <td>{{ pokemon.name }}</td>
      <td>{{ pokemon.type }}</td>
    </tr>
    <tr *ngFor="let pokemon of pokemons; let i = index">
      <td [ngClass]="{'cool-bool':pokemon.isCool}">{{ i }}</td>
      <td>{{ pokemon.name }}</td>
      <td>{{ pokemon.type }}</td>
    </tr>
  </tbody>
</table>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19

Web 页面:
在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/436160
推荐阅读
相关标签
  

闽ICP备14008679号