如何存储和使用角管结果在 html 文件中添加 ngClass

Har*_*mer 3 angular-pipe angular

我在做什么:

html文件

 <div *ngFor='let result of results'>
    <div [ngClass]='{"myclass": someArray | inArray:result.id}'>
    </div>
    </div>
Run Code Online (Sandbox Code Playgroud)

.ts 文件:

someArray = [1, 2, 3]

results = [
{id:1, name:'abc'},
{id:2, name:'xyz'},
{id:4, name:'pqr'}]
Run Code Online (Sandbox Code Playgroud)

结果:我从来没有被分配过班级。

如何使用“as”将管道结果存储在html文件中以在ngClass中使用它?

inArray (pipe):Pipe 根据数组中是否存在值返回 true 或 false。

参考Angular 2 根据管道结果添加样式

更新1:

inArray (pipe):Pipe 根据数组中是否存在值返回 -1 或索引值。

更新2: 堆栈闪电战

rmj*_*oia 5

如果我没记错的话,这就是你要找的!

抱歉我有事要处理,现在才回来。

检查StackBlitz

仅当该值存在时才应用该类。

import { Pipe, PipeTransform } from '@angular/core';

@Pipe({ name: 'inArray' })
export class inArrayPipe implements PipeTransform {

  transform(value: any, exponent: any): boolean {
    let result = value.indexOf(exponent);
    return result > -1;
  }
}
Run Code Online (Sandbox Code Playgroud)

剩下的就是你的代码了..但是它们都在上面的 Stackblitz 示例中一起工作。