Interpolacja kątowa za pomocą „ngIf”

Oct 09 2020

Mam tabelę, w której chcę, aby pierwsza kolumna miała określony kolor zgodnie ze zmienną w mojej klasie. Na przykład mam klasę DisplayProject.ts, która ma atrybut o nazwieindexOfColor

DisplayProject.ts

export class DispalyProject implements OnInit {
  ngOnInit(): void {
  }

  project: Project;
  indexOfColor: number = 1; // can be 2 

  constructor () {
  }
}

DisplayProject.html

<table>
  <thead>
    <tr>
      <th>the project name</th>
      <th>the project date</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>project.name</td>
      <td>project.date</td>
    </tr>
  </tbody>
</table>

Chcę, aby kolumna „nazwa projektu” była zielona „jeśli” indexOfColor = 1i niebieska „jeśli”indexOfColor = 2

Jakieś rozwiązania?

Odpowiedzi

4 DerekWang Oct 09 2020 at 02:09

Możesz użyć ngStyle do implementacji określonych stylów na podstawie zmiennych.

<th [ngStyle]="{ 'background-color': indexOfColor == 1 ? 'green' : 'blue' }">
  the project name
</th>
Casaper Oct 09 2020 at 02:21

Składnik:

@Component({ selector: 'app-comp', ... })
export class DispalyProject {
  @Input() public project: Project;
  @Input() public indexOfColor: 1 | 2 = 1; //can be 2
}

Arkusz stylów SCSS:

.default-color {
  color: green;
}
.blue {
  color: blue;
}

Szablon:

<table>
  <thead>
    <tr>
     <th class="default-color" [ngClass]="{ blue: indexOfColor === 2 }">
       the project name
     </th>
     <th>
       the project date
     </th>
    </tr>
  </thead>
  <tbody>
   <tr>
     <td>project.name</td>
     <td>project.date</td>
   </tr>
  </tbody>
</table>
Lud Oct 09 2020 at 09:26

Jeśli korzystasz z zajęć, możesz:

SCSS

.color-green {
  color: green;
}

.color-blue {
  color: blue;
}

Szablon:

<th [ngClass]="{
    'color-green': indexOfColor === 1
    'color-blue': indexOfColor === 2
    }">
    the project name
</th>

W takim przypadku, jeśli pewnego dnia chcesz dodać kolejny warunek, wystarczy dodać jedną linię

ZakariyaPindhariya Oct 09 2020 at 13:27
<th [style.background]="{ indexOfColor == 1 ? 'green' : {indexOfColor == 2 ? 'blue' :'black'}">
</th>

Odwołanie od wartości powiązania do stylu